<!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">
        <div align="CENTER">
      <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> 

      <h3>Apache HTTP Server</h3>
    </div>



    <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>
        <hr />

    <h3 align="CENTER">Apache HTTP Server</h3>
    <a href="./"><img src="images/index.gif" alt="Index" /></a>

  </body>
</html>

