Die Apache 2.0 ErrorDocument-Direktive funktioniert nicht, wenn das Stammverzeichnis selbst abgerufen wird

Die Apache 2.0 ErrorDocument-Direktive funktioniert nicht, wenn das Stammverzeichnis selbst abgerufen wird

Ich bin für eine Site verantwortlich, die Apache 2.0 auf Red Hat 4.1.2 verwendet.

Ich habe die Site so konfiguriert, dass eine benutzerdefinierte Fehlerseite angezeigt wird, indem ich der .htaccess-Datei im Stammverzeichnis der Site diese Zeile hinzugefügt habe:

ErrorDocument 403 /403.html

Ich habe zum Testen meine eigene IP-Adresse in der Site-Anwendung blockiert. Das Ergebnis in der .htaccess-Datei ist ungefähr Folgendes (ich habe die Liste der Kürze halber bearbeitet und die IPs geändert):

SetEnvIfNoCase REMOTE_ADDR "^(0\.0\.0\.1|0\.0\.0\.2|0\.0\.0\.3).*" BadIP
deny from env=BadIP

Wenn ich versuche, von einer „schlechten“ IP-Adresse auf die Site zuzugreifen, erhalte ich die benutzerdefinierte Fehlerseite, wenn ich versuche, eine bestimmte Seite aufzurufen (z. B.http://example.com/index.html).

Wenn ich jedoch versuche, nur das Stammverzeichnis abzurufen (zum Beispielhttp://example.com), dann erhalte ich stattdessen die Apache-Testseite.

Gibt es eine Möglichkeit, das Stammverzeichnis der Site mit der benutzerdefinierten Fehlerseite zum Laufen zu bringen?

EDIT: Ich glaube, ich habe für Verwirrung gesorgt. Zur Klarstellung:

  • Wenn ich versuche, die Stamm-URL abzurufen, wird die Stammseitenichtbedient; ich erhalte die Seite mit dem Hinweis: „Wenn Sie diese Seite lesen können, bedeutet das, dass der auf dieser Site installierte Apache-HTTP-Server ordnungsgemäß funktioniert.“ Ich werde also wie erwartet blockiert, erhalte aber nicht die 403-Fehlerseite.
  • wenn ich versuche, etwas unterhalb der Wurzel zu bekommen, bekomme ich meine benutzerdefinierte 403.html-Seite

AKTUALISIEREN:

Ich habe dies auf einer neueren Apache-Version (2.2.25) versucht. Ich habe es auch versuchtohnedie ErrorDocument-Direktive oder SetEnv-Zeug. Die .htaccess-Datei enthältnurdiese 3 Zeilen:

order allow,deny
allow from all
deny from 0.0.0.0

wobei 0.0.0.0 durch meine tatsächliche IP-Adresse ersetzt wird.

Das Ergebnis ist das gleiche: Beim Abrufen von example.com erhalte ich die Apache-Testseite „Wenn Sie dies lesen können“, und beim Abrufen von example.com/x erhalte ich die integrierte Seite „Verboten … Sie haben keine Berechtigung, auf diesem Server auf /x zuzugreifen“.

verwandte Informationen