Jak wykonać przekierowania adresów URL za pomocą PHP?

Przekierowania adresów URL są nieodłączną częścią procesu pozycjonowania. Najczęściej wykorzystywane są przekierowania 301, które nie tylko przenoszą użytkownika pod nowy adres, ale przede wszystkim informują roboty wyszukiwarki, że zawartość już na stałe będzie się tam znajdowała. Takie przekierowania można wykonać na wiele sposobów. Jednym z nich są przekierowania za pomocą własnego skryptu PHP.

#wiemyjak prowadzić skuteczną strategię SEO i SXO
POZNAJ naszą ofertę na POZYCJONOWANIE

Poniższy tekst dotyczy sytuacji w której mamy konkretną listę adresów do przekierowania na nowe.

Na początek musimy zalogować się na nasz serwer i zlokalizować w głównym katalogu plik „index.php”. Kod obsługujący nasze przekierowania powinien znaleźć się na jego początku zaraz po otwarciu znacznika „<?php”. Jeśli nie chcemy „zaśmiecać” pliku zbyt dużą ilością kodu możemy po prostu dołączyć inny plik, który go zawiera za pomocą poniższego zapisu:

<?php
include 'przekierowania.php';

Następnie w wybranym przez nas miejscu dodajemy właściwy kod obsługujący przekierowania:

  • Na początku definiujemy funkcję o nazwie „redirect”, której jako argument podawać będziemy adres na który chcemy przekierować użytkownika.

function redirect($target) {
   $host = $_SERVER['HTTP_HOST'];
   header("Location: ".$host.$target, TRUE, 301);
   exit;
}
  • Następnie tworzymy tablicę asocjacyjną w której umieścimy nasze adresy. Kluczem będzie stary adres, a jego wartością nowy.

$urls = array(
  '/adres' => '/nowy-adres',
  '/drugi-adres' => '/drugi-nowy-adres'
);

Do tablicy możemy analogicznie dodawać kolejne pary adresów.

  • Teraz pozostaje nam jedynie sprawdzić czy wywołany przez użytkownika adres pasuje do któregoś z kluczy (adresów) w naszej tablicy. Możemy to zrobić w bardzo prosty sposób korzystając z wbudowanych funkcji PHP. Jeśli adres zostanie znaleziony, przekierujemy użytkownika w odpowiednie miejsce, wywołując zdefiniowaną wcześniej funkcję „redirect” z wybranym argumentem.
if(array_key_exists($_SERVER['REQUEST_URI'], $urls))
   redirect($urls[$_SERVER['REQUEST_URI']]);
Przejdź do komentarzy

Komentarze

Dodaj komentarz