Imię ..........Piotr
Nazwisko ........Lewicki
Wiek ..
Wzrost 72.4409449 inch
Waga ...2574.9728 oz
Narodowość .........Polska

22-07-2008

Przyjazne URL mod-rewrite

Filed under: PHP — Tagi: , , , — Levik @ 23:34

Strona jest już drugi tydzień w sieci, a google nie specjalnie chce się zabrać za jej indeksowanie. No cóż skoro nie chce trzeba mu odrobinę pomóc. Odkąd zapoznałem się z przyjaznymi adresami url, zawsze wydawało mi się, że aby osiągnąć zamierzony efekt przejrzystości adresu trzeba w tą całą eskapadę władować sporo czasu i przede wszystkim chęci. Niestety miałem rację. Jak mawia pewien nauczyciel „pierwszy raz zawsze boli”. Przerobienie bloga kosztowało mnie kilka (dłuższych) chwil. Fakt kodu do wklepania jest nie wiele, ale … lepiej przeczytać jakiś kurs i dobrze się zastanowić jak kierować ruchem na stronie zanim przystąpi się do działania.

Pozostałem przy przesyłaniu pola id. Gdybym wybrał pole tytuł, w którym występują polskie znaki + znaki specjalne jak ‘+’,'-’ itp. musiałbym jeszcze sporo się namęczyć. Przecież nikt nie lubi krzaczków takich jak te %2B, %20. Kumpel polecił mi metodę mod-rewrite.

Oto listing pliku .htaccess:

Options FollowSymLinks
RewriteEngine On

RewriteRule ^([0-9]+)/([a-zA-Z0-9\/\+-\_]+)$ start.php?numer=$1&nazwa=$2 [L]
RewriteRule ^komentarz/([0-9]+)$ /addkom.php?numer=$1 [L]
RewriteRule ^([a-zA-Z0-9\/\+-]+)$ /archiwum.php?dzial=$1 [L]

Efekt jaki dzięki temu uzyskujemy jest naprawdę zapierający dech w piersiach.
Przed zastosowaniem mod-rewrite:

www.blog.levik.ddl2.pl/start.php?id=23

Po zastosowaniu mod-rewrite:

www.blog.levik.ddl2.pl/23/dev-c++_cURL

Odnoszę wrażenie, że wyszukiwarce google to się spodoba. Doszła jeszcze do tego funkcja podmieniająca polskie znaki i kilka znaków specjalnych, ale jest to zaledwie kilka linii kodu.

1
2
3
4
5
6
7
function   mylink($string) {
$polish = array('/ą/','/ę/','/ś/','/ć/','/ż/','/ź/','/ł/','/Ą/','/Ę/','/Ś/','/Ć/','/Ż/','/Ź/','/Ł/');
$latin   =   array('/a/','/e/','/s/','/c/','/z/','/z/','/l/','/A/','/E/','/S/','/C/','/Z/','/Z/','/L/');
 
$mylink = strtolower(preg_replace($polish,   $latin, $string));
return str_replace("   ", "_", preg_replace("/[^a-zA-Z0-9 \+ -]/",   "", $mylink) );
}

- by levik@wp.pl L3VIK -

Jesteś gościem numer - Twój adres IP to: 38.107.179.213