Ireneusz Połeć Blog > Linux > Mod_rewrite w php (Debian)
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:
Fajny poradnik. Ale jeden błąd. Powinno być: /etc/init.d/apache2 restart
Literówka, już poprawiłem 🙂