Ho appena installato Apache 2.2 sulla mia macchina Vista, tutto funziona bene, tranne il mod rewrite.
Ho decommentato
LoadModule rewrite_module modules/mod_rewrite.s
ma nessuna delle mie regole di riscrittura funziona, anche quelle semplici come
RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404
Tutte le regole che sto usando funzionano sul mio hosting, quindi dovrebbero essere ok, quindi la mia domanda è, c'è qualche cosa di nascosto nella configurazione di apache, che potrebbe bloccare il mod rewrite?
Per la mia situazione, avevo
RewriteEngine On
nel mio .htaccess
, insieme al modulo caricato, e non funzionava.
La soluzione al mio problema è stata quella di modificare la voce del mio vhost per includere
AllowOverride all
nella sezione <Directory>
per il sito in questione.
Ho appena notato che hai detto mod_rewrite.s invece di mod_rewrite.so - spero che sia un errore di battitura nella tua domanda e non nel file httpd.conf! :)
Sono più abituato a usare Apache su Linux, ma ho dovuto farlo l'altro giorno.
Prima di tutto, date un'occhiata alla directory di installazione di Apache. (Presumo che tu l'abbia installato in "C:\Program Files" qui)
Dai un'occhiata nella cartella: "C:\Program FilesApache Software FoundationApache2.2\modules" e assicurati che ci sia un file chiamato mod_rewrite.so. (Dovrebbe esserci, è fornito come parte dell'installazione predefinita.
Poi, apri "C:\Program Files\Apache Software Foundation\Apache2.2\conf" e apri httpd.conf. Assicurati che la linea:
#LoadModule rewrite_module modules/mod_rewrite.so
sia decommentata:
LoadModule rewrite_module modules/mod_rewrite.so
Inoltre, se si vuole abilitare il RewriteEngine di default, si potrebbe aggiungere qualcosa come
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>
alla fine del tuo file httpd.conf.
In caso contrario, assicurati di specificare
RewriteEngine On
da qualche parte nel tuo file .htaccess.