Warum liest Apache .htaccess-Dateien, obwohl sie deaktiviert sind?
Nach Apache - Dokumentation, die Einstellung AllowOverride
und AllowOverrideList
Optionen zu None
werden, völlig ignorieren .htaccess
Dateien. Versuchen Sie nicht einmal, sie aus dem Dateisystem zu lesen.
Ich habe beide Optionen eingestellt, none
aber Apache liest die .htaccess
Dateien immer noch. Ich weiß das, denn wenn ich eine .htaccess
Datei mit einigen gültigen Anweisungen einfüge, wird ein 500-Fehler ausgegeben. Wenn Sie die Anweisungen auskommentieren (im Wesentlichen eine leere .htaccess
Datei), wird der 500-Fehler nicht ausgelöst. Offensichtlich liest Apache die .htaccess
Dateien immer noch.
Apache2-Fehlerprotokoll (für den öffentlichen Verbrauch
bereinigt ): [Do 30 Jul 23: 36: 35.393831 2020] [Kern: Warnung] [PID 60903] [Client-DDDD: 10554] /var/www/example/.htaccess: Hier nicht erforderlich , Referer:http://example.net/
Die Frage ist warum? Was vermisse ich? Wie soll es sich gemäß der Dokumentation verhalten? dh nicht einmal versuchen, die .htaccess
Dateien zu lesen .
Referenz: https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride
Wenn diese Anweisung auf None und AllowOverrideList auf None festgelegt ist, werden .htaccess-Dateien vollständig ignoriert. In diesem Fall versucht der Server nicht einmal, .htaccess-Dateien im Dateisystem zu lesen.
Antworten
Dies scheint ein Fehler in früheren Versionen von Apache 2.4 zu sein, der Berichten zufolge in Apache 2.4.20 behoben wurde
https://bz.apache.org/bugzilla/show_bug.cgi?id=58528
Der Fehler scheint zu sein, dass beim expliziten Festlegen AllowOverrideList None
des Werts der Wert nicht korrekt zurückgesetzt wird .
Ich habe überprüft, dass ich in Apache 2.4.7 dasselbe (falsche) Verhalten sehe
Wenn Sie AllowOverrideList
in Ihrer Serverkonfiguration noch nie eine andere Einstellung vorgenommen haben , können Sie diese Anweisung weglassen, da die Standardeinstellung lautet None
. (Wenn diese Standardeinstellung beibehalten wird, scheint sie gemäß den Dokumenten korrekt interpretiert zu werden.)