Mod_rewrite w php (Debian)

Instalacja na Debianie Apache’a nie ustawia nam domyślnie włączonej obsługi mod_rewrite, która bardzo przydaje się przy pozycjonowaniu stron internetowych.

Po zainstalowaniu Apache’a wchodzimy sobie do katalogu /etc/apache2/mods-available/ i edytujemy pliczek rewrite.load. Jeżeli na początku zawartości pliku nie ma znaku #, to zamykamy plik i nic nie robimy, w przeciwnym razie usuwamy ten znak (#). Znak # oznacza zakomentowanie linii. W przypadku usunięcia ów znaku trzeba zrobić restart serwera Apache poleceniem (z root’a):

/etc/init.d/apache2 restart

Z poziomu root’a wydajemy polecenie:

a2enmod rewrite

Otrzymamykomunikat:

Enabling module rewrite.
Run ‘/etc/init.d/apache2 restart’ to activate new configuration!

Oznacza to, że musimy zrobić restart serwera Apache poleceniem jak wyżej.

W celu sprawdzenia czy wszystko jest ok tworzymy sobie 2 pliczki w katalogu na serwis www:

test.php z zawartością:

<?php
echo “text.php”;
?>

i .htaccess

Options FollowSymLinks
RewriteEngine On
RewriteRule test.html test.php

Następnie uruchamiamy skrypt przez przeglądarke wpisując: http://adres_sewera/test.html

W tym momencie powinniśmy zostać automatycznie przekierowaniu do pliku text.php i powinien być wyświetlony napis “text.php”. Jeżeli tak mamy to znaczy, że mod_rewrite działa 🙂

Drugim i znacznie prostszym sposobem jest sprawdzenie czy Apache2 załadował moduł mod_rewrite. Tworzymy plik index.php i wrzuamy do niego skrypcik:

<?php
phpinfo();
?>

Uruchamiamy skrypcik przez przeglądarkę www i szukamy LoadedModules:

rewrite

2 Comments

  1. Wiktor

    Fajny poradnik. Ale jeden błąd. Powinno być: /etc/init.d/apache2 restart

  2. Ireneusz Połeć (Post author)

    Literówka, już poprawiłem 🙂

Leave a Comment

Your email address will not be published. Required fields are marked *