]> granicus.if.org Git - apache/blob - docs/manual/custom-error.xml.fr
Updates.
[apache] / docs / manual / custom-error.xml.fr
1 <?xml version="1.0" encoding="ISO-8859-1" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
4 <!-- English Revision : 922267 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <manualpage metafile="custom-error.xml.meta">
26
27   <title>Messages d'erreur personnalis&eacute;s</title>
28
29   <summary>
30     <p>Le serveur HTTP Apache fournit des messages d'erreur g&eacute;n&eacute;riques
31     pour les codes de statut 4xx ou 5xx ; ces messages sont cependant
32     relativement aust&egrave;res, impr&eacute;cis, et peuvent s'av&eacute;rer intimidants
33     pour les visiteurs du site. Si vous le souhaitez, vous pouvez
34     afficher des messages d'erreur plus conviviaux, dans un langage
35     autre que l'anglais, ou m&ecirc;me sous une forme plus en ad&eacute;quation avec
36     le style de votre site.</p>
37
38     <p>Il est possible de d&eacute;finir des messages d'erreur personnalis&eacute;s
39     pour chaque code de statut HTTP associ&eacute; &agrave; une condition d'erreur -
40     c'est &agrave; dire tout code de statut 4xx ou 5xx.</p>
41
42     <p>De plus, il est possible de
43     personnaliser le message d'erreur en fonction d'un jeu de valeurs
44     fourni, en utilisant les <a href="howto/ssi.html">Inclusions C&ocirc;t&eacute;
45     Serveur (SSI)</a>. Un programme CGI ou un autre gestionnaire
46     dynamique (PHP, mod_perl, etc...) peut aussi utiliser ces variables
47     pour g&eacute;rer les conditions d'erreur.</p>
48
49     
50   </summary>
51
52   <section id="configuration"><title>Configuration</title>
53
54     <p>Les messages d'erreur personnalis&eacute;s sont configur&eacute;s via la
55     directive <directive module="core">ErrorDocument</directive>, qui
56     peut &ecirc;tre utilis&eacute;e dans un contexte global, serveur virtuel ou
57     r&eacute;pertoire. On peut utiliser cette directive dans les fichiers
58     .htaccess si <directive module="core">AllowOverride</directive> est
59     d&eacute;finie &agrave; FileInfo.</p>
60
61     <example>
62       ErrorDocument 500 "D&eacute;sol&eacute;, notre script s'est crash&eacute; ; comme c'est
63       dommage !"<br />
64       ErrorDocument 500 /cgi-bin/crash-recover<br />
65       ErrorDocument 500 http://erreur.example.com/erreur_serveur.html<br />
66       ErrorDocument 404 /erreurs/non_trouve.html <br />
67       ErrorDocument 401 /inscription/comment_s_inscrire.html
68     </example>
69       
70 <p>La syntaxe de la directive <code>ErrorDocument</code> est :</p>
71       <example>
72       ErrorDocument &lt;code_3_chiffres&gt; &lt;action&gt;
73     </example>
74       <p>o&ugrave; action peut &ecirc;tre :</p>
75         <ol>
76       <li>Le texte &agrave; afficher. Entourez le texte de guillemets (").</li>
77       <li>Une URL de redirection local.</li>
78       <li>Une URL de redirection externe.</li>
79     </ol>
80
81     <p>Dans le cas d'une redirection vers une URL locale, des variables
82     d'environnement suppl&eacute;mentaires sont d&eacute;finies de fa&ccedil;on &agrave; ce que la
83     r&eacute;ponse puisse &ecirc;tre personnalis&eacute;e par la suite. Elles ne sont pas
84     envoy&eacute;es aux URLs externes.</p>
85
86   </section>
87
88         <section id="variables"><title>Variables disponibles</title>
89
90       <p>La redirection vers une autre URL peut &ecirc;tre utile, mais
91       seulement s'il est possible de transmettre certaines informations
92       qui pourront &ecirc;tre utilis&eacute;es pour expliquer ou journaliser
93       la condition d'erreur ou le probl&egrave;me plus clairement.</p>
94
95         <p>Pour y parvenir, lorsque la redirection d'erreur est envoy&eacute;e,
96         des variables d'environnement suppl&eacute;mentaires sont d&eacute;finies &agrave;
97         partir des en-t&ecirc;tes de la requ&ecirc;te originale en pr&eacute;fixant le nom
98         d'origine de l'en-t&ecirc;te par 'REDIRECT_', ce qui permet de fournir au
99         message d'erreur le contexte de la requ&ecirc;te originelle.</p>
100
101       <p>Par exemple, en plus des variables d'environnement habituelles,
102       vous pouvez recevoir ce qui suit :</p>
103       
104
105       <example>
106         REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/jpeg, image/png<br />
107         REDIRECT_HTTP_USER_AGENT=Mozilla/5.0 Fedora/3.5.8-1.fc12 Firefox/3.5.8<br />
108         REDIRECT_PATH=.:/bin:/usr/local/bin:/sbin<br />
109         REDIRECT_QUERY_STRING=<br />
110         REDIRECT_REMOTE_ADDR=121.345.78.123<br />
111         REDIRECT_REMOTE_HOST=client.example.com<br />
112         REDIRECT_SERVER_NAME=www.example.edu<br />
113         REDIRECT_SERVER_PORT=80<br />
114         REDIRECT_SERVER_SOFTWARE=Apache/2.2.15<br />
115         REDIRECT_URL=/cgi-bin/buggy.pl
116       </example>
117
118       <p>Les variables d'environnement <code>REDIRECT_</code> sont
119       cr&eacute;&eacute;es &agrave; partir des variables d'environnement pr&eacute;existantes &agrave; la
120       redirection qui sont pr&eacute;fix&eacute;es par la cha&icirc;ne <code>REDIRECT_</code> ;
121       par exemple, <code>HTTP_USER_AGENT</code> devient
122       <code>REDIRECT_HTTP_USER_AGENT</code>.</p>
123
124       <p><code>REDIRECT_URL</code>, <code>REDIRECT_STATUS</code>, et
125       <code>REDIRECT_QUERY_STRING</code> sont syst&eacute;matiquement d&eacute;finies,
126       les autres variables n'&eacute;tant d&eacute;finies que si l'en-t&ecirc;te
127       correspondant existait avant la condition d'erreur.</p>
128
129       <p><strong>Aucune</strong> d'entre elles ne sera d&eacute;finie si votre
130       directive <directive module="core">ErrorDocument</directive>
131       sp&eacute;cifie une redirection <em>externe</em> (toute URL commen&ccedil;ant
132       par un protocole du style <code>http:</code>, m&ecirc;me si elle fait
133       r&eacute;f&eacute;rence au m&ecirc;me h&ocirc;te que le serveur).</p>
134     
135   </section>
136
137   <section id="custom"><title>Personnalisation des messages d'erreur</title>
138
139        
140         <p>Si vous faites pointer votre directive
141         <code>ErrorDocument</code> vers certains gestionnaires
142         dynamiques comme les inclusions c&ocirc;t&eacute; serveur, les scripts CGI ou
143         d'autres gestionnaires, vous pouvez utiliser les variables
144         d'environnement suppl&eacute;mentaires disponibles pour personnaliser
145         le message.</p>
146       
147
148       <p>Si la directive ErrorDocument sp&eacute;cifie une redirection locale
149       vers un script CGI, ce dernier doit ajouter un en-t&ecirc;te
150       "<code>Status:</code>" dans sa sortie afin de s'assurer du bon
151       acheminement jusqu'au client de la condition d'erreur qui a
152       provoqu&eacute; cette redirection. Par exemple, un script Perl sp&eacute;cifi&eacute;
153       par une directive ErrorDocument pourrait contenir ce qui suit
154       :</p>
155
156       <example>
157         ... <br />
158         print  "Content-type: text/html\n"; <br />
159         printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"}; <br />
160         ...
161       </example>
162
163       <p>Si un script est d&eacute;di&eacute; &agrave; la gestion d'une condition d'erreur
164       sp&eacute;cifique, telle que <code>404&nbsp;Not&nbsp;Found</code>, il
165       peut utiliser le code et le texte de l'erreur sp&eacute;cifiques &agrave; la
166       place.</p>
167
168       <p>Notez que si la r&eacute;ponse contient un en-t&ecirc;te
169       <code>Location:</code> (afin d'initier une redirection c&ocirc;t&eacute;
170       client), le script <em>doit</em> &eacute;mettre un en-t&ecirc;te appropri&eacute;
171       (comme <code>302&nbsp;Found</code>). Dans le cas contraire,
172       l'en-t&ecirc;te <code>Location:</code> ne produira aucun effet.</p>
173   </section>
174
175   <section id="multi-lang"><title>Messages d'erreur personnalis&eacute;s
176   multilingues</title>
177
178     <p>Vous trouverez dans la distribution du serveur HTTP Apache un
179     r&eacute;pertoire contenant des messages d'erreur personnalis&eacute;s traduits en
180     16 langues diff&eacute;rentes. Pour activer cette fonctionnalit&eacute;, vous
181     pouvez aussi inclure un fichier de configuration qui se trouve dans
182     le r&eacute;pertoire de configuration <code>conf/extra</code>.</p>
183
184     <p>Dans le fichier de configuration de votre serveur, vous trouverez
185     un groupe de lignes du style :</p>
186
187     <example>
188     # Multi-language error messages<br />
189     #Include conf/extra/httpd-multilang-errordoc.conf
190     </example>
191
192     <p>D&eacute;commentez la ligne <code>Include</code> pour activer cette
193     fonctionnalit&eacute;, et pr&eacute;senter des messages d'erreur dont le langage
194     sera n&eacute;goci&eacute; en fonction du langage pr&eacute;f&eacute;r&eacute; d&eacute;fini au niveau du
195     navigateur du client.</p>
196
197     <p>De plus, ces documents contiennent diverses variables
198     <code>REDIRECT_</code>, de fa&ccedil;on &agrave; ce que l'utilisateur final
199     dispose d'informations suppl&eacute;mentaires &agrave; propos de ce qui a pu se
200     produire, et de ce qu'il est susceptible de faire maintenant.</p>
201
202     <p>Ces documents peuvent &ecirc;tre personnalis&eacute;s en fournissant autant
203     d'informations utiles que vous le souhaitez aux utilisateurs &agrave;
204     propos de votre site, et de ce qu'ils sont susceptibles d'y trouver.</p>
205
206     <p>Pour pouvoir utiliser cette fonctionnalit&eacute;, vous devez activer
207     <module>mod_include</module> et <module>mod_negotiation</module>.</p>
208
209  </section>
210
211
212 </manualpage>