<< Spam na forach internetowych, w księgach gości itp |
Kilka słów o dodawaniu stron do katalogów >>Autorem artykuły jest
Damian DaszkiewiczJednym z popularniejszych tematów na forach internetowych jest mod_rewrite. Często nawet gdy jakiś serwer nie obsługuje tego modułu, uważa się, że nie warto tam hostować swojej strony. Jeśli jednak nie jesteś w temacie, to pewnie nie wiesz, o co w tym wszystkim chodzi i dlaczego jest to taki popularny temat. W tym artykule chciałbym troszkę Tobie przybliżyć to zagadnienie.
Często widuję strony na których jest podstrona o adresie
www.costam.pl/ksiazka.php?jaka=1. Taki adres internetowy nie wygląda zbyt przyjźnie. Pewnie dużo ładniej by wyglądał taki adres:
www.costam.pl/ksiazka_1.htm. Ten adres nie tylko łatwiej jest zapamiętać zwykłemu internaucie, ale również wyszukiwarki łatwiej go zaindeksują. W pierwszym wypadku jest wywoływany plik index.php z parametrem a w drugim przypadku jest to zwykły plik html. Pierwsze rozwiązanie ma tą zaletę, że plik index.php po otrzymaniu odpowieniego parametru (w tym przypadku
1) może odczytać z bazy danych odpowiednie dane z bazy danych i je wyświetlić. Jest to prostsze niż tworzenie wielu plików statycznych html (i łatwiejsze w zarządzaniu).
A teraz sobie pomyśl co by było, gdyby wmówić serwerowi, że posiadasz plik
ksiazka_1.htm i gdy użytkownik wejdzie na tą stronę to tak naprawdę odpali plik
index.php z parametrem
jaka=1 (zamiast 1 mam na myśli dowolną liczbę, albo nawet ciąg znaków). W tym wypadku łapiesz dwie sroki za jeden ogon - zarówno tworzysz serwis przyjazny dla wyszukiwarek, jak również nie musisz tworzyć wiele plików html. Takie rozwiązanie jest możliwe i to jest ten cały mod_rewrite! Aby serwer wiedział, że chcesz korzystać z mod_rewrite musisz go jakoś o tym poinformować a także wytłumaczyć mu, że jak użytkownik chce wywołać plik ksiazka_.html to tak naprawdę ma być odpalony plik index.php z parametrem jaka=. Aby to zrobić należy utworzyć plik .htaccess (tak, nazwa tego pliku zaczyna się od kropki) o następującej zawartości:
RewriteEngine On
RewriteRule ^ksiazka_([0-9">*).htm /index.php?jaka=$1
Pierwsza linijka informuje serwer, że chcesz korzystać z mod_rewrite. Druga linijka to jest owa definicja. ciąg znaków ([0-9">*) oznacza dowolną liczbę. Gdyby nie było w nim gwiazdki, to owy ciąg znaków oznaczałby jedynie cyfrę. Natomiast $1 oznacza, że w tym miejscu jest wstawiony pierwszy parametr z owego wzorca (tym wzorcem jest liczba, która znajduje się pomiędzy ciągiem znaków
ksiazka_ a ciągiem znaków
.htm).
Uwaga: pliki .htaccess działają na cały katalog wraz z podkatalogami. Jeśli przykładowo wrzucisz owy plik do głównego katalogu, ale nie chcesz, aby mod_rewrite działało dla jakiegoś podkatalogu, to należy wrzucić do tego podkatalogu plik .htaccess o następującej zawartości:
RewriteEngine Off
Uwaga2: plik .htaccess jest plikiem ukrytym (dla serwerów linuxowych każdy plik którego pierwsza litera w nazwie to kropka jest plikiem ukrytym). Nie wszystkie klienty FTP go pokazują (czasami trzeba włączyć opcję
pokazuj pliki ukryte). Dlatego nie przestrasz się, gdy nie zobaczysz tego pliku na serwerze a mod_rewrite działa ;-)
<< Spam na forach internetowych, w księgach gości itp |
Kilka słów o dodawaniu stron do katalogów >>