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.

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...

jQuery Validation i funkcja remote

Jakiś czas temu zwrócił się do mnie użytkownik z problemem. Chodzi o to, że korzysta on z pluginu walidacji jQuery, […]

Zend Framework: integracja z Uploadify

W tym wpisie postaram się przedstawić Wam w jaki sposób zintegrować skrypt Uploadify z Zend Frameworkiem. Dzięki temu będziemy mogli […]

Javascript: Czasowe wyświetlanie reklamy

Czasami chcemy, aby na pewnym elemencie naszej strony wyświetlała się reklama przez jakiś czas, a następnie zniknęła. W tym wpisie […]

Linux: backup wszystkich baz danych MySQL

Swego czasu pisałem o tym jak z poziomu konsoli można szybko i przyjemnie zrobić backup bazy MySQL. Wszystko jest ładnie […]