summaryrefslogtreecommitdiff
path: root/usr.sbin/httpd/htdocs/manual/custom-error.html.fr
blob: 2b189cc55f417703dcbaaa4e2b976b4c381b5b8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<!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>