Andere Fallstricke:
1- Manchmal ist es eine gute Idee, MultiViews zu deaktivieren
Options -MultiViews
Ich bin nicht mit allen MultiViews-Funktionen vertraut, aber ich weiß, dass es meine mod_rewrite-Regeln durcheinander bringt, wenn es aktiv ist, weil eine seiner Eigenschaften darin besteht, zu versuchen, eine Erweiterung einer Datei zu erraten, nach der ich zu suchen glaube .
Ich erkläre: Angenommen, Sie haben 2 PHP-Dateien in Ihrem Webverzeichnis, file1.php und file2.php, und Sie fügen diese Bedingungen und Regeln zu Ihrem .htaccess hinzu:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ file1.php/$1
Sie gehen davon aus, dass alle URLs, die nicht mit einer Datei oder einem Verzeichnis übereinstimmen, von file1.php erfasst werden. Überraschung! Diese Regel wird für die URL http: // myhost / file2 / somepath nicht berücksichtigt . Stattdessen werden Sie in file2.php aufgenommen.
Was los ist, ist, dass MultiViews automatisch erraten hat, dass die URL, die Sie tatsächlich wollten, http: //myhost/file2.php/somepath war und Sie gerne dorthin gebracht hat.
Jetzt haben Sie keine Ahnung, was gerade passiert ist, und stellen an diesem Punkt alles in Frage, was Sie über mod_rewrite zu wissen glaubten. Sie fangen dann an, mit Regeln herumzuspielen, um zu versuchen, die Logik hinter dieser neuen Situation zu verstehen, aber je mehr Sie testen, desto weniger Sinn macht es.
Ok, kurz gesagt, wenn Sie möchten, dass mod_rewrite logisch funktioniert, ist das Deaktivieren von MultiViews ein Schritt in die richtige Richtung.
2- Aktivieren Sie FollowSymlinks
Options +FollowSymLinks
Das hier, ich kenne die Details nicht wirklich, aber ich habe es schon oft erwähnt gesehen, also mach es einfach.