Wie Sie pro der Dokumentation kennen, wenn DirectorySlash
-Off
gesetzt ist, Anfragen an /folder
nicht über DirectoryIndex
ausgewertet. Dies bedeutet, dass die Anfrage nicht automatisch auf /folder/index.php
abgebildet wird.
mod_dir
führt diese Überprüfung in der "Fixup" -Phase der Anfrageverarbeitung durch. mod_rewrite
, die für Ihre RewriteRule
Definitionen verantwortlich ist, führt auch ihre Verarbeitung in dieser Phase durch, wenn Sie die Regeln in einer .htaccess
Datei angeben.
Es wurde jedoch mit einem Bewusstsein für Module wie mod_dir
programmiert und enthält eine Überprüfung, um sicherzustellen, dass das aktuelle Verzeichnis mit einem abschließenden Schrägstrich angefordert wurde. Wenn nicht, lehnt es die Bearbeitung der Anfrage ab, da dies zu undefiniertem Verhalten führen könnte.
Die Anfrage geht dann in die Phase der Inhaltserzeugung über, die, da die Anfrage keiner realen Datei zugeordnet wurde, von mod_autoindex
gehandhabt wird. Vorausgesetzt, dass Indexes
auf Ihrem Host standardmäßig deaktiviert sind, gibt mod_autoindex
403 Forbidden
zurück, was Sie sehen.
Hinweis seit DirectoryIndex
dass nicht ausgewertet wird, auch wenn mod_rewrite
die Anforderung zu verarbeiten, wäre es immer noch nicht, da keine automatische Auflösung index.php
auftreten würde, und die Regel
RewriteRule . /folder/index.php [L]
wouldn‘ t passen, weil die .
erfordert eine Übereinstimmung für etwas (aber die Anfrage wäre leer).
DirectorySlash
Aktivieren verhindern dieses Szenario durch die verhinderten Aktionen in allen zuvor genannten Szenarien mit Ausnahme der letzten Note zu korrigieren, die der Versorgung durch die Tatsache gemacht, dass DirectoryIndex
ordnet die Anfrage an index.php
sowieso.
Vielen Dank! Einfach zu verstehen, wenn ich Ihre Antwort gelesen habe. – gearsdigital
Aber was, wenn wir unsere Verzeichnisstruktur verschleiern und trotzdem 'mod_rewrite' für jede Anfrage verwenden wollen? Angenommen, ich habe eine Site mit einem '/ private' -Verzeichnis. Apache würde mich zu '/ private /' umleiten, wenn ich '/ private' anfordere, wenn' DirectorySlash' auf 'On' gesetzt ist, und die Offenlegung von Informationen zulassen würde. Was, wenn ich nur '/ private' an meinen' Index senden möchte. php' Front Controller? – tonix