apache risolve gli URL prima di cercare in .htaccess
-
19-08-2019 - |
Domanda
Ho una regola di riscrittura nel seguente modulo:
RewriteRule ^foo/([a-zA-Z0-9]+)$ foo.php?arg=$1 [qsa,nc]
Prende gli URL del modulo / foo / bar
e li cambia in /foo.php?arg=bar
Funziona correttamente a livello locale e funziona sul mio vecchio host ma mi sono trasferito su un nuovo host (con Ubuntu) e si comporta in modo diverso.
Sul nuovo host apache nota che esiste un foo.php e lo chiama direttamente. In altre parole, gli URL della forma / foo / bar
sono visti come /foo.php
. Se rinomino foo.php
in foo_junk.php
e cambio la regola di riscrittura in
RewriteRule ^foo/([a-zA-Z0-9]+)$ foo_junk.php?arg=$1 [qsa,nc]
Quindi funziona tutto. Quindi non è che non ho abilitato le sostituzioni o che non sono riuscito a installare mod_rewrite o altro. Riscrive il lavoro, sono appena stati eseguiti in un punto diverso del processo di risoluzione di un URL rispetto a quello locale.
Esiste un'opzione di configurazione per questo?
Soluzione
Prova a disabilitare MultiViews
:
Options -MultiViews