Mod rewrite: przyjazne linki

Pewnie na wielu stronach spotkałeś się z tzw. „przyjaznymi linkami”, które pomagają w znaczny sposób w pozycjonowaniu strony w wyszukiwarkach. Przyjazne linki tworzy się poprzez podmianę adresów skryptów z rozszerzeniem .php na rozszerzenie .html, które jest lepiej przyjmowane przez roboty wyszukiwarek.

Dzisiaj dam pierwszą praktyczną wskazówkę w jaki sposób można konstruować takie linki, aby miały rozszerzenie .html, a odwoływały się do skryptów PHP. Przyjmijmy, że nasza strona posiada plik główny index.php i za pomocą zmiennej $module odwołuje się do poszczególnych modułów, np. do modułu newsów w postaci adresu URL:

index.php?module=news

Chcielibyśmy, aby adres do naszego modułu miał taką postać:

news.html

W tym celu w naszym pliku .htaccess musimy dodać następujący kod:

1
2
3
RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+).html$ index.php?module=$1

Nasz serwer Apache musi posiadać aktywowany moduł mod rewrite, aby powyższy kod zadziałał. W pierwszej linii aktywujemy mechanizm „przyjaznych linków”, natomiast w kolejnej definiujemy regułę tworzenia „przyjaznych linków”. Nasz skrypt index.php w regule ma przypisaną zmienną $1, która oznacza zmienną nr 1, która zwraca wartość w pierwszej części reguły ([a-zA-Z0-9_-]+). Wartość ta może przyjmować cyfry, litery oraz znaki „-” i „_”. W związku z tym z adresu:

news.html

Fraza „news” będzie przypisywana do zmiennej $1 i powyższy adres będzie odwoływał się do skryptu o adresie:

index.php?module=news

Analogicznie adres:

gallery.php

będzie odwoływał się do skryptu PHP o adresie:

index.php?module=gallery

W taki sposób możemy tworzyć przyjazne linki na naszej stronie. Przydałaby się jeszcze funkcja, która będzie zamieniać zwykły adres na taki z rozszerzeniem .html, ale o tym w jednym z kolejnych wpisów.

Comments

PHP: Funkcja generująca przyjazne linki | Arkadiusz Tobiasz

[…] jednym z poprzednich wpisów przedstawiłem jak tworzyć “przyjazne linki” za pomocą mod_rewrite. W dzisiejszym […]

Reply

Leave a Comment

four × 1 =