<-
Apache > Serveur HTTP > Documentation > Version 2.0

Please note

This document refers to the 2.0 version of Apache httpd, which is no longer maintained.
Upgrade, and refer to the current version of httpd instead, documented at:
You may follow this link to go to the current version of this document.

Personnalisation des Messages d'Erreurs

Langues Disponibles:  en  |  es  |  fr  |  ja  |  ko  |  tr 

Il est possible � un administrateur Apache de configurer les r�ponses d'Apache dans les cas o� des erreurs ou probl�mes se pr�sentent.

Des r�ponses param�trables peuvent �tre d�finies pour �tre activ�es au cas o� le serveur d�tecterait une erreur ou un probl�me.

Quand un script plante et g�n�re une r�ponse "500 Server Error", sa r�ponse peut �tre remplac�e par un message plus convivial, ou par une redirection vers une autre URL (locale, ou sur un autre serveur).

top

Fonctionnement

Fonctionnement ant�rieur

NCSA httpd 1.3 renvoyait un message d'erreur insipide qui ne pr�sentait le plus souvent aucun sens ni � l'utilisateur, ni dans les journaux d'enregistrement sur des sympt�mes causant le plantage.

Fonctionnement des versions plus r�centes

Le serveur peut �tre param�tr� pour :

  1. Afficher un autre message que celui cod� dans NCSA, ou bien
  2. proc�der � une redirection sur une URL locale, ou bien
  3. proc�der � une redirection vers un autre serveur.

La redirection vers une autre URL peut �tre utile, mais seulement si des informations peuvent �tre envoy�es pour expliquer/enregistrer l'erreur ou le probl�me plus clairement.

Pour y parvenir, Apache d�finit de nouvelles variables d'environnement CGI :

REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, image/jpeg
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

Notez que le pr�fixe REDIRECT_ est pr�sent pour toutes ces variables d'environnement.

Au minimum, REDIRECT_URL et REDIRECT_QUERY_STRING seront pass�es � la nouvelle URL (en supposant qu'il s'agisse d'un script CGI ou d'un include CGI). Les autres variables ne sont d�finies que si elles existaient avant l'apparition du probl�me ou de l'erreur. Aucune de ces variables ne sera d�finie si votre directive ErrorDocument entra�ne une redirection vers un serveur externe ; tout ce qui commence par http: est consid�r� comme une redirection externe, y compris si cela pointe vers le serveur local.

top

Configuration

Il est possible d'utiliser la directive ErrorDocument dans les fichiers .htaccess si AllowOverride est param�tr�e pour le permettre.

Voici quelques exemples :

ErrorDocument 500 /cgi-bin/crash-recover
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

La syntaxe � utiliser est :

ErrorDocument <code-�-3-chiffres> <action>

o� l'action peut d�signer :

  1. Un message � afficher. Le message doit �tre pr�c�d� par des guillemets ("). Tout ce qui suit ces guillemets est affich�. Notez que le pr�fixe (") n'est pas affich�.
  2. Une URL vers un serveur externe, vers lequel la redirection sera effectu�e.
  3. Une URL locale vers laquelle la redirection sera effectu�e.
top

Messages d'Erreurs Personnalis�s et Redirections

Le fonctionnement d'Apache vis-�-vis des redirections a �t� modifi� afin que les nouvelles variables d'environnement soient disponibles pour un script ou un server-include.

Fonctionnement ant�rieur

Les variables CGI standard �taient pass�es au script sur lequel pointe la redirection. Aucune indication sur la provenance de la redirection n'�tait fournie.

Fonctionnement pour les nouvelles versions

Une s�rie de nouvelles variables d'environnement est initialis�e pour �tre pass�e au script sur lequel pointe la redirection. Chacune de ces variables est munie du pr�fixe REDIRECT_. Les variables d'environnement REDIRECT_ sont cr��es � partir des variables d'environnement "normales", telles qu'existant avant la redirection, mais simplement renomm�es au moyen du pr�fixe REDIRECT_ ; ainsi par exemple HTTP_USER_AGENT devient REDIRECT_HTTP_USER_AGENT. En plus de ces nouvelles variables, Apache d�finit REDIRECT_URL et REDIRECT_status pour aider le script � comprendre d'o� il a �t� appel�. L'URL d'origine et l'URL redirig�e sont toutes deux ajout�es dans le journal "access".

Si ErrorDocument pr�cise une redirection locale vers un script CGI, ce script devrait inclure un champ "Status:" dans son en-t�te de transmission afin d'assurer que le client re�oive bien le code d'erreur et puisse comprendre ce qui l'a caus�. Par exemple, un script Perl ErrorDocument pourrait inclure quelque chose comme :

...
print "Content-type: text/html\n";
printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
...

Un script d�di� � la gestion d'une erreur donn�e, telle que 404 Not Found, peut bien s�r utiliser le code sp�cifique d'erreur et le texte associ�.

Notez que le script doit envoyer l'en-t�te Status: appropri�e (comme par exemple 302 Found), si la r�ponse contient un en-t�te Location: (pour g�n�rer la redirection cot� client). Sans cet en-t�te Status:, Location: n'aura pas d'effet.

Langues Disponibles:  en  |  es  |  fr  |  ja  |  ko  |  tr