Mam świeżą instalację Apache 2.2 na mojej maszynie Vista, wszystko działa dobrze, z wyjątkiem mod rewrite.
I've uncommented
LoadModule rewrite_module modules/mod_rewrite.s
ale żadna z moich reguł przepisywania nie działa, nawet tak proste jak
RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404
Wszystkie reguły, których używam działają na moim hostingu, więc powinny być ok, więc moje pytanie brzmi, czy jest jakaś ukryta rzecz w konfiguracji apache, która mogłaby zablokować mod rewrite?
W mojej sytuacji, miałem
RewriteEngine On
w moim .htaccess
, wraz z załadowanym modułem, i nie działało.
Rozwiązaniem mojego problemu było edytowanie mojego wpisu vhost, aby inlcude
AllowOverride all
w sekcji <Directory>
dla strony, o której mowa.
Właśnie zauważyłem, że powiedziałeś mod_rewrite.s zamiast mod_rewrite.so - mam nadzieję, że to'literówka w twoim pytaniu, a nie w pliku httpd.conf! :)
Jestem bardziej przyzwyczajony do używania Apache na Linuksie, ale musiałem to zrobić innego dnia.
Po pierwsze, zajrzyj do swojego katalogu instalacyjnego Apache'a. (Zakładam, że zainstalowałeś go w katalogu "C:Program Files").
Zajrzyj do folderu: "C:™Program Files™Apache Software Foundation™Apache2.2™modules" i upewnij się, że znajduje się tam plik o nazwie mod_rewrite.so. (Powinien być, jest on dostarczany jako część domyślnej instalacji.
Następnie otwórz plik "C:\Program Files\Apache Software Foundation\Apache2.2\conf" i otwórz httpd.conf. Upewnij się, że linia:
#LoadModule rewrite_module modules/mod_rewrite.so
jest odkomentowana:
LoadModule rewrite_module modules/mod_rewrite.so
Ponadto, jeśli chcesz włączyć RewriteEngine domyślnie, możesz dodać coś w stylu
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>
na końcu swojego pliku httpd.conf.
Jeśli nie, upewnij się, że określasz
RewriteEngine On
gdzieś w swoim pliku .htaccess.