| <!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és</title> |
| </head> |
| |
| <body text="#000000" link="#0000ff" vlink="#000080" |
| bgcolor="#ffffff"> |
| <!--#include virtual="header.html" --> |
| |
| <h1 align="CENTER">Messages d'erreur personnalisés</h1> |
| |
| <h3>But</h3> |
| |
| <p>Fonctionnalité additionnelle. Permet aux |
| administrateurs Web de personnaliser les réponses |
| données par Apache en cas de problèmes. Les |
| réponses personnalisées définies peuvent |
| être activables lorsque le serveur est à |
| même de détecter la cause du problème.</p> |
| |
| <p>ex. si un script termine en faute, produisant une |
| réponse "500 Server Error", alors cette réponse |
| peut être remplacé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épondait souvent avec |
| des messages d'erreur ennuyeux et peu amènes qui |
| étaient sans signification pour l'utilisateur, et ne |
| donnait pas les symptômes qui pouvaient causer la |
| faute.</p> |
| |
| <h3>Nouveau comportement</h3> |
| |
| <p>On pourra désormais demander au serveur :</p> |
| |
| <ol> |
| <li>D'afficher un autre texte, plutô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 être utile, |
| mais seulement si certaines informations peuvent être |
| passées et qui serviront à produire un affichage |
| ou un enregistrement du problème plus clair et |
| explicite.</p> |
| |
| <p>Pour ce faire, Apache définira de nouvelles variables |
| d'environnement ( à 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éfixe <code>REDIRECT_</code>.</p> |
| |
| <p>Seront au moins passés à 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éjà avant l'apparition du problème. |
| <b>Aucune de ces deux variables</b> ne sera initialisée |
| si votre Document d'erreur est le résultat d'une |
| redirection <i>externe</i> (c-à-d. toute adresse |
| commençant par le nom d'un plan de protocole comme |
| <code>http:</code>, même si le protocole invoqué |
| aboutit sur le même hôte que le serveur à |
| l'origine de la redirection).</p> |
| |
| <h3>Configuration</h3> |
| |
| <dl> |
| <dd>L'utilisation des documents "ErrorDocument" est |
| autorisé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ésolé, votre script |
| s'est vautré. 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> |
| <code à trois chiffres> action</dd> |
| |
| <dd>dans laquelle l'action peut être :</dd> |
| </dl> |
| </div> |
| |
| <div style="margin-left: 4em"> |
| <ol> |
| <li>Le texte devant être affiché. Le texte |
| devra être préfixé par un guillemet |
| ("). Tout ce qui suit le guillemet sur la ligne est |
| affiché. <em>Notez : le préfixe (") |
| lui-même n'est pas affiché.</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ées</h2> |
| |
| <h3>But</h3> |
| |
| <dl> |
| <dd>Le comportement d'Apache lorsqu'il redirige des URL a |
| été modifié afin que d'autres |
| variables d'environnement additionnelles puissent |
| être rendues accessibles par un |
| script/server-include.</dd> |
| </dl> |
| |
| <h3>Ancien comportement</h3> |
| |
| <dl> |
| <dd>Les variables CGI standard étaient transmises au |
| script vers lequel était redirigé le client. |
| Aucune indication n'était transmise quant à |
| qui redirigeait le message.</dd> |
| </dl> |
| |
| <h3>Nouveau comportement</h3> |
| |
| <dl> |
| <dd>Un nouvel ensemble de variables d'environnement sera |
| initialisé, à l'intention du script vers |
| lequel le client a été redirigé. |
| Chaque nouvelle variable de cet ensemble est |
| préfixée par <code>REDIRECT_</code>. Les |
| variables d'environnement de type <code>REDIRECT_</code> |
| sont créées à partir des variables |
| d'environnement CGI qui existaient avant que n'intervienne |
| la redirection, en leur rajoutant le préfixe. Par |
| exemple <code>HTTP_USER_AGENT</code> devient |
| <code>REDIRECT_HTTP_USER_AGENT</code>. En plus de ces |
| variables, Apache définit les variables |
| <code>REDIRECT_URL</code> et <code>REDIRECT_STATUS</code> |
| pour aider le script à identifier l'origine de la |
| redirection. Dans la trace d'accès déduite |
| peuvent apparaître l'URL initiale ainsi que l'URL |
| vers laquelle est redirigée la requête.</dd> |
| </dl> |
| </div> |
| <hr /> |
| <br /> |
| <br /> |
| |
| |
| <p>Si la directive ErrorDocument spécifie une |
| redirection local vers un script CGI, le script devra inclure |
| un champ "<samp>Status:</samp>" dans l'en-tête de sa |
| sortie afin de garantir la retransmiison complète vers |
| le client des conditions d'erreurs qui ont causé 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édié pour traité une |
| condition d'erreur particulière telle que |
| <samp>404 Not Found</samp>, il peut utiliser le code |
| spécifique et le message d'erreur à la place.</p> |
| <!--#include virtual="footer.html" --> |
| </body> |
| </html> |
| |