Frage

Ich habe eine Rewrite-Regel in der folgenden Form:

RewriteRule ^foo/([a-zA-Z0-9]+)$ foo.php?arg=$1 [qsa,nc]

Es dauert Urls der Form /foo/bar und ändert sie /foo.php?arg=bar

Es funktioniert lokal, und es funktioniert auf meinem alten Host, aber ich zog auf einen neuen Host (Ubuntu), und es verhält sich anders.

Auf der neuen Host Apache bemerkt, dass es eine foo.php ist und nennt es direkt. Mit anderen Worten, Urls der Form /foo/bar als /foo.php gesehen. Wenn ich foo.php benennen Sie die Rewrite-Regel foo_junk.php und ändern sein

RewriteRule ^foo/([a-zA-Z0-9]+)$ foo_junk.php?arg=$1 [qsa,nc]

Dann alles funktioniert. Es ist also nicht, dass ich nicht überschreibt aktiviert haben oder dass ich nicht mod_rewrite oder irgendetwas zu installieren. Rewrites Arbeit, sind sie nur an einem anderen Punkt im Prozess gemacht wird, um eine URL zu lösen, als sie vor Ort sind.

Gibt es eine Konfigurationsoption für das?

War es hilfreich?

Lösung

Versuchen Sie deaktivieren MultiViews :

Options -MultiViews
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top