Czym jest mod_rewrite ? Jest to zwykle przepisywanie adresow. Wpisujac
www.e-comp.org/service.html odwolujesz sie do strony
www.e-comp.org/infopage.php?id=1 , a adres jest latwiejszy do zapamietania, w wielu przypadkach rowniez duzo krotszy.
Jak tego dokonac ? Calosc kodu zapisujemy zawsze w pliku
.htaccess i wrzucamy do glownego katalogu naszej strony. mod_rewrite musi byc wlaczony na serwerze, jesli nie jest, skontaktuj sie z adminem hostingu.
Wiec teraz sama struktura. Plik zaczynamy od wpisu
RewriteEngine On, potem kazda linie od
RewriteRule. Adres, ktory ma zostac przepisany wpisujemy pomiedzy znaki ^ oraz $, powinno to wygladac tak:
^service.html$. Nastepnie, po spacji, wpisuje nazwe pierwotna, ktora ma zostac przepisana na nowa. Calosc opisanego wyzej przykladu powinna wygladac tak:
RewriteEngine On
RewriteRule ^service.html$ ./pageinfo.php?id=1
Troche bardziej skomplikowanie wyglada odczytywanie zmiennych. Wszystkie zmienne nalezy zawsze zapisywac w
okraglych nawiasach. Omowmy to na przykladzie z .htaccess naszego forum:
RewriteRule ^cat([0-9]*)\.htm$ ./index.php?c=$1
Skrypt czyta zmienna przy 'cat' i wpisuje ja do poprawnego adresu zamiast $1, tak wiec wpisujac adres
www.e-comp.org/cat5.htm odwolujemy sie do pliku
www.e-comp.org/index.php?c=5 .
Inny przyklad:
RewriteRule ^profiles/([0-9]+)\.htm$ ./profile.php?mode=viewprofile&u=$1
Tutaj znow odczytywane jest id usera, ktore jest zmienna wystepujaca po ./profiles/, nastepnie przekazuje ja do pliku profile.php jako zmienna $1. Czyli wpisujac
www.e-comp.org/profiles/2.htm w rzeczywistosci odwolujemy sie do adresu
www.e-comp.org/profile.ph...viewprofile&u=2 .
Mozna rowniez mod_rewrite wykorzystac do tworzenia wlasnych stron bledow. Wg. konstrukcji:
ErrorDocument nr_bledu strona_bledu
Czyli np.
ErrorDocument 404 404.htm, przydatne dla serwerow nazwa.pl, one nie posiadaja mozliwosci wlaczenia wlasnych stron bledow.
Ode mnie to by bylo na tyle, w razie pytan, prosze zalozyc sobie temacik
Pozdrawiam