Benutzerdefinierte Fehlerseite in der Apache2 für 401
Hier ist der relevante Teil der .htaccess-Datei:
AuthUserFile /var/www/mywebsite/.htpasswd
AuthGroupFile /dev/null
AuthName protected
AuthType Basic
Require valid-user
ErrorDocument 400 /var/www/errors/index.html
ErrorDocument 401 /var/www/errors/index.html
ErrorDocument 403 /var/www/errors/index.html
ErrorDocument 404 /var/www/errors/index.html
ErrorDocument 500 /var/www/errors/index.html
Docuement root auf /var/www/mywebsite/web, es ist einer der vielen vhosts. Ich kann navigieren Sie zu dem index.html Seite.
Alle ich sehe ist die Allgemeine Apache-401 Seite, irgendwelche Gedanken.
EDIT: Das ist die Fehlermeldung in meinem browser:
Genehmigung Erforderlich
Diesem server konnte nicht verifizieren, dass Sie
berechtigt sind, den Zugriff auf das Dokument
angefordert. Entweder versorgt Sie die
falsche Zugangsdaten (z.B., bad
Passwort) oder Ihr browser nicht
verstehen, wie die Versorgung der
Anmeldeinformationen erforderlich.Darüber hinaus eine 401 Authorization
Erforderlich Fehler aufgetreten beim
versuchen, eine ErrorDocument-Anweisung zu
die Anfrage verarbeiten soll. Apache/2.2.9
(Debian) PHP/5.2.6-1+lenny8 mit
Suhosin-Patch Server at www.dirbe.com
Port 80
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass /var/www/Fehler lesbar ist, die von der apache-Benutzer und sind diese in der apache-Konfiguration:
ErrorDocument
, wenn es ein Pfad ist nicht eine Datei Weg, aber ein URL-Pfad, und dieser Weg muss zugänglich sein, wie ein normales Dokument (z.B. in derDocumentRoot
). Dies ist, weil dieErrorDocument
Richtlinie ist nur ein einfaches redirect. Die gewählte Antwort oben (mitDirectory
) ist irreführend und nur die richtigen in Kombination mit einer entsprechendenDocumentRoot
Konfiguration und (optional) die Angabe einerVirtualHost
block.Diese Frage (und die Antworten und Kommentare) hat mir geholfen, ein paar, vielen Dank!
Löste ich einen etwas anderen Weg und wollte zu teilen. In diesem Fall, wir brauchten, um einen benutzerdefinierten Fehler 401 Dokument und den root-Pfad benötigt, um Proxy zu backend-app.
So, zum Beispiel, http://example.com benötigt, um zu dienen, Inhalte aus http://internal-server:8080/. Auch, http://example.com musste geschützt werden, mit Basic Auth mit einer benutzerdefinierten Fehler 401-Dokument.
So, ich habe ein Verzeichnis mit dem Namen "Fehler" in der DocumentRoot. Hier die relevanten Zeilen aus der vhost:
ErrorDocument-Direktive nimmt eine absolute URL-Pfad anstelle einer Datei-Pfad. So sollte es sein:
Vorausgesetzt, unter das document root ist /error/error.html Datei.
index.html
in IhremDocumentRoot
). Dies ist, weil dieErrorDocument
Richtlinie stellt ein einfaches redirect, kein direktes Lesen von der (Datei oder -) Standort.