%20bei%20aktualisierter%20.htaccess-Datei.png)
Ich verwende ein Plugin für eine meiner Websites, das ich kürzlich aktualisiert habe. Seitdem erhalte ich beim Öffnen der magnalister.php des Plugins immer die Meldung „Zugriff verweigert“ (Fehler 403). Wenn ich die neue .htaccess-Datei durch die alte ersetze, habe ich keine Probleme. Hier sind die Inhalte der Dateien:
Vor dem Update:
<Files magnalister.php>
Order Deny,Allow
Allow from all
</Files>
<Files magnaCallback.php>
Order Deny,Allow
Allow from all
</Files>
Nach dem Update:
<Files magnalister.php>
<IfModule !mod_authz_core.c>
Order Deny,Allow
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Files>
<Files magnaCallback.php>
<IfModule !mod_authz_core.c>
Order Deny,Allow
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Files>
Im PHP-Fehlerprotokoll erhalte ich Folgendes:
[Wed Sep 12 00:25:05 2018] [access_compat:error] [pid 7437] [client ***] [host ***] AH01797: client denied by server configuration: /is/htdocs/***/www/testshop3/plugins/magnalister/magnalister.php
Ich verwende Apache/2.4.10.
Was ist der Grund für den 403-Fehler bei der aktualisierten Version?
Antwort1
Wo bist duleugnendZugriff? Das scheint das Problem zu sein. Ich vermute, Sie verweigern den Zugriff mit den „alten“ Apache 2.2-Direktiven an anderer Stelle in Ihrer Apache-Konfiguration immer noch und dies hat Vorrang.
Alle Anweisungen, die Sie gepostet haben, nurerlaubenZugang, alsoetwas anderesin Ihrer Konfiguration verweigert den Zugriff auf diese Datei.
Sie haben Ihre Konfiguration aktualisiert, .htaccess
damit sie mit den Modulen mod_authz_core/host von Apache 2.4 funktioniert. Wenn jedoch unter Apache 2.4 ein anderer Teil Ihrer Konfiguration noch die alten Deny
Anweisungen verwendet (Teil von mod_access_compact in Apache 2.4 und mod_authz_host in Apache 2.2), haben diese „alten“ Anweisungen Vorrang vor den „neuen“ Anweisungen von Apache 2.4 .htaccess
, ungeachtet der offensichtlichen Reihenfolge in Ihrer Konfiguration, und der Zugriff wird trotzdem verweigert.
Wie bereits erwähnt in derApache-Dokumente beim Upgrade von 2.2 auf 2.4:
...das Mischen alter und neuer Anweisungen [kann] zu unerwarteten Ergebnissen führen. ... Weil die Anweisungen mod_access_compat Vorrang vor den Anweisungen mod_authz_host haben ...
Wenn Sie also an anderer Stelle in Ihrer Konfiguration noch die „alten“ Anweisungen verwenden (um den Zugriff zu verweigern), müssen diese aktualisiert werden, um die entsprechenden Anweisungen von Apache 2.4 zu verwenden.
Dies scheint durch den angezeigten Fehler bestätigt zu werden, der durch mod_access_compact ausgelöst wird und nicht durch mod_authz_core, wie Sie es bei Apache 2.4 erwarten würden.
[Mi., 12. September 2018, 00:25:05 Uhr] [access_compat:Fehler] [pid 7437] [Client ...] [Host ...] AH01797: Client abgelehnt durch Serverkonfiguration: /is/htdocs/.../www/testshop3/plugins/magnalister/magnalister.php
(Beiseite:Sie sagen, Sie verwenden Apache 2.4. Müssen Sie wirklich die Abwärtskompatibilität mit Apache 2.2 aufrechterhalten, wie Sie es in tun .htaccess
? Die Wartung beider Konfigurationen wird nur schwieriger und fehleranfälliger.)