Czasem zastanawiasz się, patrząc na swój serwis WWW, że adresy linków w Twoim serwisie nie są ani przyjazne ani przyjemne nie tylko dla oka ale na pewno już nie sposób ich zapamiętać. Pomyśl, gdyby można było zamiast odnośnika:
http://mojastrona.pl/promocje/pokaz.php?r=1435
sprowadzić to do następującej prostej postaci:
http://mojastrona.pl/promocje/1435
Jak nie patrzeć to teraz jest o wiele lepiej. To właśnie dzięki mod_rewrite możemy skorzystać w prosty sposób z takiej opcji. Oczywiście to nie jedna zaleta mod_rewrite gdyż dzięki temu modułowi możemy również ukryć niechciane parametry języka php.
No ale do rzeczy. Jak włączyć mod_rewrite w apache2:
w pliku /etc/apache2/sites-available/default w sekcji
Directory /
Options FollowSymLinks
AllowOverride FileInfo
/Directory
oraz
Directory /var/www/
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all
/Directory
oraz nieco ponizej dopisujemy
IfModule mod_rewrite.c
RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 9
/IfModule
Polecam również stworzyć sobie jakąś rotacje tego loga albo pominąć tą opcje.
Teraz pozostaje nam jeszcze włączyć faktyczny moduł do apache2
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
już w zasadzie mamy komplet do działania restart apache2 i do dzieła
sudo /etc/itit.d/apache2 restart
jak nie posypało błędami to jest nieźle
Jeśli chcemy skrócić nasz adres tak jak pisałem na początku, musimy utworzyć plik .htaccess w którym zamieścimy parę linijek. Jak łatwo zauważyć są to głównie wyrażenia regularne perla.
RewriteEngine On
RewriteRule ^pokaz/([0-9][0-9])/$ pokaz.php?id=$1
Jak łatwo można zauważyć taka linijka zamieni nam końcówkę adresu ale tylko w wypadku kiedy ta będzie liczbą.
RewriteEngine On
RewriteRule ^pokaz/([0-9][a-zA-Z]+)/$ pokaz.php?id=$1
Zrobi w zasadzie to samo ale też zamieni nie tylko liczby lecz także litery.
Oczywiście przykładów można by mnożyć. Jeśli tylko w miarę zna się wyrażenia regularne perla można wiele osiągnąć.
Uwaga!!! Należy pamiętać o tym że ostatnia linijka pliki .htaccess powinna być pusta. Tak więc proszę dawać Enter na końcu pliku
0 komentarze:
Prześlij komentarz