ModRewrite – przyjazne adresy na stronach www
Programiści mają to do siebie, że o wiele łatwiej jest im zapamiętać ciąg zmiennych, rozdzielonych ampersandami niż ciąg logicznych wyrazów. Na szczęście – bądź też nieszczęście – większość ludzi woli jednak wyrazy swojego ojczystego języka. W ten sposób postała koncepcja zamiany adresów www na tzw. friendly URL, którymi mam zamiar zająć się dziś.
Początki
Jeszcze kilka dni temu sądziłem, że sprawa jest beznadziejna, że moje umiejętności nie wystarczą. Ale cóż – w środowisku IT jest presja, by wszystko ułatwiać i trzymać się trendów. A, można chyba powiedzieć, że przyjazne adresy są standardem dla każdej liczącej się firmy na rynku. Nauczenie się więc tworzenia portali, które korzystają z tego wynalazku jest doskonałą inwestycją w siebie.
Czego mi trzeba?
Tak de facto – niczego. Wystarczy Apache z modułem mod_rewrite i trochę wolnego czasu na doczytanie szczegółów dokumentacji. Nasza strona może nadal działać tak samo. Naszym zadaniem jest stworzenie dodatkowych dwóch fragmentów kodu, które będą pozwalały na zamianę adresów: plik .htaccess z regułami zamiany adresów z krótkich, na normalne i kod php, ktory generuje te krótkie adresy.
Reguły RewriteRule
Przepisywanie adresów okazuje się łatwe, jeżeli nasz portal jest dobrze skonstruowany, Każda reguła RewriteRule to pojedyncza linijka:
RewriteRule wyrażenie_regularne wynik_przepisywania
I tyle. Wystarczy „powiedzieć” modułowi mod_rewrite jakie adresy ma tłumaczyć na jakie. W ten sposób wykonane jset tłumaczenie na naszej stronie firmowej. Budując odpowiednie reguły uzyskaliśmy adresy URL w językach użytkownika, prowadzące do odpowiednich wersji językowych podstron. W naszym wypadku reguły tworzone były ręcznie – mieliśmy ku temu powody – ale równie dobrze można napisać skrypt, który plik .htaccess będzie generować na bieżąco w pełni automatycznie, lub zdecydować się na adresy skonstruowane trochę inaczej, ale cechujące się większą regularnością.
Generowanie krótkich adresów po stronie PHP
Tutaj sprawa wygląda trochę inaczej. Sposób generowania adresów jest zależny ad tego jak wyglądają docelowe adresy. Najprostszym sposobem (ale najmniej automatycznym) jest tworzenie tych URLi podczas tworzenia podstron i dodawanie ich do bazy danych w osobnych polach. Przy małych stronach można oczywiście „zaszyć” nowe adresy bezpośrednio w kodzie strony. Jeśli do tej pory były tak zaszyte – zakładam, że układ strony jest niezmienny, strona nie jest rozbudowywana i zmieniana – to umieszczenie nowych adresów w tym samym miejscu nie powinno stanowić problemu.
Nie jest to kurs tworzenia przyjaznych adresów, a jedynie zachęta do własnych poszukiwań. Nie ma jednej skutecznej, metody. Wiele metod jest dobrych, trzeba znaleźć taką, która nam odpowiada i zacząć ją stosować. Uważam, że to kwestia czasu, zanim wszyscy będą używać przyjaznych adresów przy tworzeniu nowych witryn. Czy możemy sobie pozwolić na zostanie za konkurencją?
Tagi: Apache, friendly URL, mod_rewrite, www