blob: c522b9219441edf024c707b23908221c7a8f5b03 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--Traduction anglais 1.14 -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<title>Messages d'erreur personnalis&eacute;s</title>
</head>
<body text="#000000" link="#0000ff" vlink="#000080"
bgcolor="#ffffff">
<!--#include virtual="header.html" -->
<h1 align="CENTER">Messages d'erreur personnalis&eacute;s</h1>
<h3>But</h3>
<p>Fonctionnalit&eacute; additionnelle. Permet aux
administrateurs Web de personnaliser les r&eacute;ponses
donn&eacute;es par Apache en cas de probl&egrave;mes. Les
r&eacute;ponses personnalis&eacute;es d&eacute;finies peuvent
&ecirc;tre activables lorsque le serveur est &agrave;
m&ecirc;me de d&eacute;tecter la cause du probl&egrave;me.</p>
<p>ex. si un script termine en faute, produisant une
r&eacute;ponse "500 Server Error", alors cette r&eacute;ponse
peut &ecirc;tre remplac&eacute;e soit par un texte quelque peu
plus explicatif soit par une redirection vers une autre URL
(locale ou externe).</p>
<h3>Ancien comportement</h3>
<p>La version 1.3 d'httpd du NCSA r&eacute;pondait souvent avec
des messages d'erreur ennuyeux et peu am&egrave;nes qui
&eacute;taient sans signification pour l'utilisateur, et ne
donnait pas les sympt&ocirc;mes qui pouvaient causer la
faute.</p>
<h3>Nouveau comportement</h3>
<p>On pourra d&eacute;sormais demander au serveur :</p>
<ol>
<li>D'afficher un autre texte, plut&ocirc;t que les messages
standard NCSA, ou</li>
<li>rediriger l'utilisateur vers une URL locale, ou
encore</li>
<li>rediriger l'utilisateur vers une URL sur un autre
serveur.</li>
</ol>
<p>La redirection vers une autre URL peut &ecirc;tre utile,
mais seulement si certaines informations peuvent &ecirc;tre
pass&eacute;es et qui serviront &agrave; produire un affichage
ou un enregistrement du probl&egrave;me plus clair et
explicite.</p>
<p>Pour ce faire, Apache d&eacute;finira de nouvelles variables
d'environnement ( &agrave; la mode CGI), ex.</p>
<blockquote>
<code>REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap,
image/jpeg<br />
REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX
A.09.05 9000/712)<br />
REDIRECT_PATH=.:/bin:/usr/local/bin:/etc<br />
REDIRECT_QUERY_STRING=<br />
REDIRECT_REMOTE_ADDR=121.345.78.123<br />
REDIRECT_REMOTE_HOST=ooh.ahhh.com<br />
REDIRECT_SERVER_NAME=crash.bang.edu<br />
REDIRECT_SERVER_PORT=80<br />
REDIRECT_SERVER_SOFTWARE=Apache/0.8.15<br />
REDIRECT_URL=/cgi-bin/buggy.pl</code>
</blockquote>
<p>notez le pr&eacute;fixe <code>REDIRECT_</code>.</p>
<p>Seront au moins pass&eacute;s &agrave; la nouvelle URL les
variables <code>REDIRECT_URL</code> et
<code>REDIRECT_QUERY_STRING</code> (en supposant que l'URL de
redirection est un script CGI ou un Include CGI). Les autres
variables n'existeront que si elles existaient
d&eacute;j&agrave; avant l'apparition du probl&egrave;me.
<b>Aucune de ces deux variables</b> ne sera initialis&eacute;e
si votre Document d'erreur est le r&eacute;sultat d'une
redirection <i>externe</i> (c-&agrave;-d. toute adresse
commen&ccedil;ant par le nom d'un plan de protocole comme
<code>http:</code>, m&ecirc;me si le protocole invoqu&eacute;
aboutit sur le m&ecirc;me h&ocirc;te que le serveur &agrave;
l'origine de la redirection).</p>
<h3>Configuration</h3>
<dl>
<dd>L'utilisation des documents "ErrorDocument" est
autoris&eacute;e dans les fichiers .htaccess lorsque la
surcharge <a
href="mod/core.html#allowoverride">"FileInfo"</a> est
active.</dd>
<dd>En voici quelques exemples...</dd>
</dl>
<div style="margin-left: 2em">
<blockquote>
<code>ErrorDocument 500 /cgi-bin/crash-recover<br />
ErrorDocument 500 "D&eacute;sol&eacute;, votre script
s'est vautr&eacute;. Fichtre"<br />
ErrorDocument 500 http://xxx/<br />
ErrorDocument 404 /Lame_excuses/not_found.html<br />
ErrorDocument 401
/Subscription/how_to_subscribe.html</code>
</blockquote>
<dl>
<dd>La syntaxe admise est :</dd>
<dd><a href="mod/core.html#errordocument"><font
face="Courier New" size="2">ErrorDocument</font></a>
&lt;code &agrave; trois chiffres&gt; action</dd>
<dd>dans laquelle l'action peut &ecirc;tre :</dd>
</dl>
</div>
<div style="margin-left: 4em">
<ol>
<li>Le texte devant &ecirc;tre affich&eacute;. Le texte
devra &ecirc;tre pr&eacute;fix&eacute; par un guillemet
("). Tout ce qui suit le guillemet sur la ligne est
affich&eacute;. <em>Notez : le pr&eacute;fixe (")
lui-m&ecirc;me n'est pas affich&eacute;.</em></li>
<li>Une URL externe de redirection.</li>
<li>Une URL locale de redirection.</li>
</ol>
</div>
<hr />
<br />
<br />
<div style="margin-left: 2em">
<h2>Redirections et affichage d'erreurs
personnalis&eacute;es</h2>
<h3>But</h3>
<dl>
<dd>Le comportement d'Apache lorsqu'il redirige des URL a
&eacute;t&eacute; modifi&eacute; afin que d'autres
variables d'environnement additionnelles puissent
&ecirc;tre rendues accessibles par un
script/server-include.</dd>
</dl>
<h3>Ancien comportement</h3>
<dl>
<dd>Les variables CGI standard &eacute;taient transmises au
script vers lequel &eacute;tait redirig&eacute; le client.
Aucune indication n'&eacute;tait transmise quant &agrave;
qui redirigeait le message.</dd>
</dl>
<h3>Nouveau comportement</h3>
<dl>
<dd>Un nouvel ensemble de variables d'environnement sera
initialis&eacute;, &agrave; l'intention du script vers
lequel le client a &eacute;t&eacute; redirig&eacute;.
Chaque nouvelle variable de cet ensemble est
pr&eacute;fix&eacute;e par <code>REDIRECT_</code>. Les
variables d'environnement de type <code>REDIRECT_</code>
sont cr&eacute;&eacute;es &agrave; partir des variables
d'environnement CGI qui existaient avant que n'intervienne
la redirection, en leur rajoutant le pr&eacute;fixe. Par
exemple <code>HTTP_USER_AGENT</code> devient
<code>REDIRECT_HTTP_USER_AGENT</code>. En plus de ces
variables, Apache d&eacute;finit les variables
<code>REDIRECT_URL</code> et <code>REDIRECT_STATUS</code>
pour aider le script &agrave; identifier l'origine de la
redirection. Dans la trace d'acc&egrave;s d&eacute;duite
peuvent appara&icirc;tre l'URL initiale ainsi que l'URL
vers laquelle est redirig&eacute;e la requ&ecirc;te.</dd>
</dl>
</div>
<hr />
<br />
<br />
<p>Si la directive ErrorDocument sp&eacute;cifie une
redirection local vers un script CGI, le script devra inclure
un champ "<samp>Status:</samp>" dans l'en-t&ecirc;te de sa
sortie afin de garantir la retransmiison compl&egrave;te vers
le client des conditions d'erreurs qui ont caus&eacute; son
invocation. Par exemple un script Perl devrait inclure les
lignes suivantes :</p>
<pre>
:
print "Content-type: text/html\n";
printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
:
</pre>
<p>Si le script est d&eacute;di&eacute; pour trait&eacute; une
condition d'erreur particuli&egrave;re telle que
<samp>404&nbsp;Not&nbsp;Found</samp>, il peut utiliser le code
sp&eacute;cifique et le message d'erreur &agrave; la place.</p>
<!--#include virtual="footer.html" -->
</body>
</html>