Title: Individuelle Fehlermeldungen
Der Webmaster kann mit zusätzlichen Funktionen die Antworten des Apache bei Fehlern oder beim Auftreten von Problemen konfigurieren.
Es können individuelle Antworten festgelegt werden, für den Fall, dass der Server Fehler oder Probleme erkennt.
Stürzt ein Skript mit der Fehlermeldung 500 Server Error
ab, kann diese Meldung entweder durch einen aussagekräftigeren Text oder durch
eine Umleitung zu einer anderen URL (lokal oder extern) ersetzt werden.
Ein HTTPD 1.3 NSCA-Server würde eine herkömmliche Fehlermeldung liefern, die für den Benutzer oft nichts sagend ist und böte keine Möglichkeit, die Ursachen zu protokollieren.
Der Server kann aufgefordert werden:
- einen anderen Text anstelle der fest codierten NCSA-Meldungen anzuzeigen oder
- eine Umleitung zu einer lokalen URL vorzunehmen oder
- reine Umleitung zu einer externen URL vorzunehmen.
Die Umleitung zu einer anderen URL kann sinnvoll sein, allerdings nur, wenn Informationen übergeben werden können, mit denen dann der Fehler oder das Problem erklärt und/oder protokolliert werden können.
Hierfür definiert der Apache neue Umgebungsvariablen, die mit CGI-Variablen vergleichbar sind:
REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 9000/712)
REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
REDIRECT_QUERY_STRING=
REDIRECT_REMOTE_ADDR=121.345.78.123
REDIRECT_REMOTE_HOST=ooh.ahhh.com
REDIRECT_SERVER_NAME=crash.bang.edu
REDIRECT_SERVER_PORT=80
REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
REDIRECT_URL=/cgi-bin/buggy.pl
Beachten Sie das Präfix REDIRECT_.
Mindestens REDIRECT_URL und
REDIRECT_QUERY_STRING werden der neuen URL
übergeben (vorausgesetzt es handelt sich um ein CGI-Skript oder ein CGI-Include).
Die anderen Variablen sind nur vorhanden, wenn sie vor dem Auftreten des
Fehlers oder Problems bereits vorhanden waren. Keine von
ihnen wird gesetzt, wenn die Direktive
http:
beginnt, selbst wenn auf den gleichen Host wie den Server verwiesen wird).
Die Verwendung von .htaccess-Dateien ist aktiviert, wenn
Einige Beispiel...
ErrorDocument 500 "Sorry, our script crashed. Oh dear"
ErrorDocument 500 http://xxx/
ErrorDocument 404 /Lame_excuses/not_found.html
ErrorDocument 401 /Subscription/how_to_subscribe.html
Die Syntax ist:
Die Aktion kann sein:
- Es wird Text angezeigt. Dem Text werden doppelte Anführungszeichen
"vorangestellt. Alles was folgt, wird angezeigt. Das Präfix"wird nicht angezeigt. - Umleitung zu einer externen URL.
- Umleitung zu einer internen URL.
Das Verhalten des Apache bei umgeleiteten URLs wurde so modifiziert, dass zusätzliche Umgebungsvariablen für ein Skript oder Server-Include vorhanden sind.
Standardmäßige CGI-Variablen wurden für ein Skript zur Verfügung gestellt, das umgeleitet wurde. Ein Hinweis, woher die Umleitung kam, wurde nicht geliefert.
Es wird ein Stapel neuer Umgebungsvariablen für ein Skript bereitgestellt,
das umgeleitet wurde. Jede Variable hat das Präfix REDIRECT_.
Die REDIRECT_ Umgebungsvariablen werden aus den
CGI-Umgebungsvariablen erzeugt, die vor der Umleitung vorhanden waren. Sie
erhalten das Präfix REDIRECT_, d.h., aus
HTTP_USER_AGENT wird
REDIRECT_HTTP_USER_AGENT. Neben diesen neuen
Variablen definiert der Apache REDIRECT_URL und
REDIRECT_STATUS, damit das Skript seine Herkunft
zurückverfolgen kann. Sowohl die ursprüngliche URL als auch die
Umleitungs-URL können im Zugriffsprotokoll aufgezeichnet werden.
Gibt ErrorDocument eine lokale Umleitung zu einem
CGI-Skript an, dann sollte das Skript das Header-Feld Status:
in seinen Ausgaben enthalten, damit ein Weiterreichen den ganzen Weg zurück
zum Client, der den Fehler ausgelöst hat, gewährleistet ist. Ein Perl
ErrorDocument-Skript kann beispielsweise die Anweisungen
enthalten:
print "Content-type: text/html\n";
printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
...
Soll das Skript einen bestimmten Fehler behandeln, beispielsweise
404 Not Found, kann es statt dessen den
entsprechenden Kode und Text verwenden.
Beachten Sie, dass das Skript einen entsprechenden
Status:-Header senden muss (z.B.
302 Found), wenn die Antwort
einen Location:-Header enthält (um eine Umleitung seitens des
Clients auszulösen), sonst hat der Location:-Header unter
Umständen keine Wirkung.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
