Mod rewrite: przyjazne linki

Autor: Arkadiusz Tobiasz 2 marca 2010

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.

Popularity: 4%

Jeden komentarz

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

Odpowiedz

 
Arkadiusz Tobiasz student Akademii Ekonomicznej im. Karola Adamieckiego w Katowicach na specjalnościach informatyka ekonomiczna oraz rachunkowość. Więcej...





Zend Framework: gwiazdka przy wymaganych polach

W przypadku wymaganych pól w formularzach najczęściej oznacza się je poprzez dodanie gwiazdki. W tym wpisie chciałbym pokazać w jaki [...]

MySQL: GROUP_CONCAT

Ostatnio zostałem poproszony, aby na liście zamówień w sklepie PrestaShop wyświetlić listę produktów, które zostały sprzedane. Oczywiście można by było [...]

Zend Framework: jak zwiększyć wartość o 1 w bazie danych?

Ostatnio wykonując projekt w Zend Framework musiałem zwiększyć wartość kolumny pewnego rekordu o jeden. Oczywiście można by było wykonać najpierw [...]

PHP: Skracanie długich linków

Czasem w komentarzach ktoś może wstawić długi link, który może rozciągnąć naszą stronę. Jednym z rozwiązań jest skrócenie linku. Przykładowo [...]