Przyjazne linki

2007-05-19 20:54

W jednym z moich ostatnich postów (mod rewrite) opisałem jak rozszyfrować przyjazne linki poprzez użycie mod rewrite, a teraz przyszła pora na zaprezentowanie w jaki sposób je utworzyć.

Do wygenerowania linku wykorzystujemy przeważnie tytuły dokumentów czy nazwy produktów. Nie możemy jednak użyć ich bezpośrednio, należy pozbyć się różnego rodzaju zbędnych znaków jak cudzysłowy, przecinki, dolary itp., a spacje należy zamienić na myślniki. Dodatkowo musimy przekonwertować odpowiednio nasze polskie znaki diakrytyczne.

Przed nami jeszcze jedna decyzja, czy przyjazne linki powinny zawierać identyfikator nadany przez bazę danych? Wg mnie owszem, zyskujemy szybsze wyszukiwanie po bazie danych oraz znikają niepotrzebne problemy przy odnajdywaniu strony w przypadku zmiany nazwy linku.

Przejdźmy do utworzenia naszego przyjaznego linku. Najpierw interpretujący kod mod rewrite, a potem kod php.

RewriteEngine On
RewriteBase /

# www.adresstrony.pl/tytul-artykulu,d20.html
RewriteRule ^[a-z0-9\-]+,d([0-9]+)\.html$ ?a=dokument&documentId=$1

Tutaj należałoby wspomnieć, że slash na początku $sURL powinien być pobierany z konfiguracji, a nie ustawiony na stałe. Jak zauważyli koledzy w komentarzach, znacznika <base /> nie powinno już się używać ponieważ jest on przestarzały.

Na koniec jeszcze jeden przykład implementacji, ale tym razem w smarty. W parametrach można przekazać tablicę, albo pojedyncze parametry.

Słowa kluczowe: PHP, Techblog, google, mod rewrite, przyjazne linki, seo, artykuł, blog

Projektowanie i tworzenie stron www w PHP5. Opisy i recenzje oprogramowania typu cms, blog, wiki, open source.
Wszelkie prawa zastrzeżone.