Moduł mod_rewrite, w który wyposażony jest serwer Apache, służy między innymi do budowy tzw. przyjaznych linków. Jego zastosowanie znacznie wpływa na pozycjonowanie serwisu jak i na czytelność adresów podstron serwisu. W zamian za brzydki, zapełniony zmiennymi adres podstrony (np. index.php?mode=gallery&id=3&subid=19) możemy zyskać adres postaci: gallery/3/9 lub gallery,3,9.html. Jak widać jest on adresem krótszym, łatwiejszym do zapamiętania i wpisania – po prostu przyjaznym.
Do budowy przyjaznych linków potrzebujemy dwóch rzeczy:
przynajmniej minimalnej znajomości wyrażeń regularnych:
Wyrażenia regularne stosowane są do opisu reguł przyporządkowania łańcuchów znakowych.
serwera z obsługą mod_rewrite:
Aby sprawdzić czy serwer obsługuje mod_rewrite wystaczy skorzystać z funkcji phpinfo(). Wyświetli ona informację o obsługiwanych modułach (choć w sporadycznych przypadkach zdarzyć się może, iż mod_rewrite nie jest aktywny, mimo iż jest na liście załadowanych modułów). Większość firm hostingowych (największe: home.pl, nazwa.pl, IQ, Kei) od razu udostępnia obsługę tego modułu.
RewriteEngine On
RewriteBase /
RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]
RewriteRule ([a-zA-Z0-9-_]+),([0-9]+),([0-9]+).html /index.php?mode=$1&id=$2&subid=$3 [L]
Pierwsze dwie linie instruują Apache’, że uruchamiamy moduł mod_rewrite. Druga linia, nie zawsze potrzebna, wskazuje na podkatalog domeny w jakim następuje przepisywanie adresów. Jeśli posiadasz hosting na serwerach Nazwa.pl jest ona potrzebna, na innych serwerach niekoniecznie.
Kolejne dwie linie to instrukcje przepisania adresów podstron. Omówię po kolei poszczególne bloki instrukcji wg schematu:
RewriteRule maska_przepisania docelowy_adres [opcje]
RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]
Ten człon polecenia wskazuje na polecenie przepisania adresu. Musi się on zawsze pojawić na początku linii opisującej wzór przepisania.
RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]
RewriteRule ([a-zA-Z0-9-_]+),([0-9]+),([0-9]+).html /index.php?mode=$1&id=$2&subid=$3 [L]
Kolejnym elementem polecenia jest opis wzoru adresu za pomocą wyrażeń regularnych. Dokładny ich opis można znaleźć w internecie, tutaj podamy tylko podstawowe informacje korzystając z pierwszego wyrażenia ([a-zA-Z0-9-_]+):
RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]
Kolejny blok wskazuje sposób przypisania poszczególnych wyrażeń regularnych do zmiennych w oryginalnych adresach. Kolejność zmiennych ustala się podając kolejne liczby w znakach: $1, $2, $3 itd. Jeżeli kolejność zmiennych w przyjaznym linku różni się od adresu pierwotnego oznaczamy ich kolejność wpisując w kolejności np. $3, $1, $2.
RewriteRule ([a-zA-Z0-9-_]+)/([0-9]+)/([0-9]+)/ /index.php?mode=$1&id=$2&subid=$3 [L]
Dzięki użyciu przyjaznych linków możemy osiągnąć kilka korzyści:
Lepsze pozycjonowanie serwisu – linki przyjazne wyszukiwarkom,
Łatwiejsze do zapamiętania adresy podstron – linki przyjazne użytkownikom internetu,
Częściowo ukrywamy strukturę serwisu utrudniając możliwy włam – linki przyjazne webmasterom.
Sprawdź w 90 sekund, jak Twoja strona radzi sobie w sieci!
Pod lupę bierzemy aż 70 różnych parametrów.
Odbieraj regularną dawkę wiedzy i nowości ze świata digital marketingu!
Zero spamu, tylko konkrety!
Na dobry start
proponujemy Ci bezpłatnie: