dopo aver fatto un'aggiornamneto da debian 5 a debian 6 mi sono ritrovato con una regola di mod_rewrite che non funziona più.
in pratica, sembra che quando nel target di una rule si trova il nome di un file php senza estensione, il mod_rewrite carica direttamente quel file senza passargli nessun parametro.
Esempio:
ho una directory con i seguenti files:
Codice: Seleziona tutto
/var/www/test# tree .
.
`-- Test.php
`-- .htaccessil contenuto di .htaccess è il seguente:
Codice: Seleziona tutto
RewriteEngine on
RewriteRule Test/([^/]+) Test.php?request=$1 [L]se però richiedo una pagina come Test/prova invece che caricarmi Test.php?request=prova mi carica Test.php e basta.
Questo comportamento lo ho verificato su due installazioni differenti con la debian6, dove gira apache 2.2.16,
se rinomino il file Test.php in TestA.php e cambio la regola in
Codice: Seleziona tutto
RewriteEngine on
RewriteRule Test/([^/]+) TestA.php?request=$1 [L]tutto funziona correttamente, sembra quindi che quando la parte iniziale di una regola coincide con il nome del file senza estensione il mod_rewrite carica direttamente quel file, ingorando le regole presenti.
Avete ancora visto questo problema?
Avete idea di come risolverlo o di come disabilitare questa "feature" ?
Grazie
