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?

È stato utile?

Soluzione

Prova a disabilitare MultiViews :

Options -MultiViews
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top