]> granicus.if.org Git - apache/blob - docs/manual/mod/core.xml.fr
Rebuild
[apache] / docs / manual / mod / core.xml.fr
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1697339:1701005 (outdated) -->
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 <modulesynopsis metafile="core.xml.meta">
26
27 <name>core</name>
28 <description>Fonctionnalit&eacute;s de base du serveur HTTP Apache toujours
29 disponibles</description>
30 <status>Core</status>
31
32 <directivesynopsis>
33 <name>AcceptFilter</name>
34 <description>Permet d'optimiser la configuration d'une socket pour
35 l'&eacute;coute d'un protocole</description>
36 <syntax>AcceptFilter <var>protocole</var> <var>filtre
37 d'acceptation</var></syntax>
38 <contextlist><context>server config</context></contextlist>
39
40 <usage>
41     <p>Cette directive permet d'effectuer une optimisation de la socket
42     d'&eacute;coute d'un type de protocole en fonction du syst&egrave;me
43     d'exploitation. Le but premier est de faire en sorte que le noyau
44     n'envoie pas de socket au processus du serveur jusqu'&agrave; ce que
45     des donn&eacute;es soient re&ccedil;ues, ou qu'une requ&ecirc;te HTTP compl&egrave;te soit mise
46     en tampon. Seuls les <a
47     href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&amp;
48     sektion=9">Filtres d'acceptation de FreeBSD</a>, le filtre plus
49     primitif <code>TCP_DEFER_ACCEPT</code> sous Linux, et la version
50     optimis&eacute;e d'AcceptEx() de Windows sont actuellement support&eacute;s.</p>
51
52     <p>L'utilisation de l'argument <code>none</code> va d&eacute;sactiver tout
53     filtre d'acceptation pour ce protocole. Ceci s'av&egrave;re utile pour les
54     protocoles qui n&eacute;cessitent l'envoi de donn&eacute;es par le serveur en
55     premier, comme <code>ftp:</code> ou <code>nntp</code>:</p>
56     <highlight language="config">
57     AcceptFilter nntp none
58     </highlight>
59
60     <p>Les noms de protocoles par d&eacute;faut sont <code>https</code> pour le
61     port 443 et <code>http</code> pour tous les autres ports. Pour
62     sp&eacute;cifier un autre protocole &agrave; utiliser avec un port en &eacute;coute,
63     ajoutez l'argument <var>protocol</var> &agrave; la directive <directive
64     module="mpm_common">Listen</directive>.</p>
65
66     <p>Sous FreeBSD, les valeurs par d&eacute;faut sont :</p>
67     <highlight language="config">
68 AcceptFilter http httpready
69 AcceptFilter https dataready
70     </highlight>
71
72     <p>Le filtre d'acceptation <code>httpready</code> met en tampon des
73     requ&ecirc;tes HTTP enti&egrave;res au niveau du noyau. Quand une requ&ecirc;te
74     enti&egrave;re a &eacute;t&eacute; re&ccedil;ue, le noyau l'envoie au serveur. Voir la page de
75     manuel de <a
76     href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&amp;
77     sektion=9">accf_http(9)</a> pour plus de d&eacute;tails. Comme les requ&ecirc;tes
78     HTTPS sont chiffr&eacute;es, celles-ci n'autorisent que le filtre <a
79     href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&amp;
80     sektion=9">accf_data(9)</a>.</p>
81
82     <p>Sous Linux, les valeurs par d&eacute;faut sont :</p>
83     <highlight language="config">
84 AcceptFilter http data
85 AcceptFilter https data
86     </highlight>
87
88     <p>Le filtre <code>TCP_DEFER_ACCEPT</code> de Linux ne supporte pas
89     la mise en tampon des requ&ecirc;tes http. Toute valeur autre que
90     <code>none</code> active le filtre <code>TCP_DEFER_ACCEPT</code>
91     pour ce protocole. Pour plus de d&eacute;tails, voir la page de
92     manuel Linux de <a
93     href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/
94     tcp.7.html">tcp(7)</a>.</p>
95
96     <p>Sous Windows, les valeurs par d&eacute;faut sont :</p>
97     <highlight language="config">
98 AcceptFilter http data
99 AcceptFilter https data
100     </highlight>
101
102     <p>Le module MPM pour Windows mpm_winnt utilise la directive
103     AcceptFilter comme commutateur de l'API AcceptEx(), et ne supporte
104     pas la mise en tampon du protocole http. Deux valeurs utilisent
105     l'API Windows AcceptEx() et vont recycler les sockets r&eacute;seau entre
106     les connexions. <code>data</code> attend jusqu'&agrave; ce que les donn&eacute;es
107     aient &eacute;t&eacute; transmises comme d&eacute;crit plus haut, et le tampon de donn&eacute;es
108     initiales ainsi que les adresses r&eacute;seau finales sont tous extraits
109     gr&acirc;ce &agrave; une seule invocation d'AcceptEx(). <code>connect</code>
110     utilise l'API AcceptEx(), extrait aussi les adresses r&eacute;seau finales,
111     mais &agrave; l'instar de <code>none</code>, la valeur <code>connect</code>
112     n'attend pas la transmission des donn&eacute;es initiales.</p>
113
114     <p>Sous Windows, <code>none</code> utilise accept() au lieu
115     d'AcceptEx(), et ne recycle pas les sockets entre les connexions.
116     Ceci s'av&egrave;re utile pour les interfaces r&eacute;seau dont le pilote est
117     d&eacute;fectueux, ainsi que pour certains fournisseurs de r&eacute;seau comme les
118     pilotes vpn, ou les filtres anti-spam, anti-virus ou
119     anti-spyware.</p>
120
121 </usage>
122 <seealso><directive module="core">Protocol</directive></seealso>
123 </directivesynopsis>
124
125 <directivesynopsis>
126 <name>AcceptPathInfo</name>
127 <description>Les ressources acceptent des informations sous forme d'un
128 nom de chemin en fin de requ&ecirc;te.</description>
129 <syntax>AcceptPathInfo On|Off|Default</syntax>
130 <default>AcceptPathInfo Default</default>
131 <contextlist><context>server config</context>
132 <context>virtual host</context><context>directory</context>
133 <context>.htaccess</context></contextlist>
134 <override>FileInfo</override>
135
136 <usage>
137
138     <p>Cette directive permet de d&eacute;finir si les requ&ecirc;tes contenant des
139     informations sous forme d'un nom de chemin suivant le nom d'un
140     fichier r&eacute;el (ou un fichier qui n'existe pas dans un r&eacute;pertoire qui
141     existe) doivent &ecirc;tre accept&eacute;es ou rejet&eacute;es. Les scripts peuvent
142     acc&eacute;der &agrave; cette information via la variable d'environnement
143     <code>PATH_INFO</code>.</p>
144
145     <p>Supposons par exemple que <code>/test/</code> pointe vers un
146     r&eacute;pertoire qui ne contient que le fichier <code>here.html</code>.
147     Les requ&ecirc;tes pour <code>/test/here.html/more</code> et
148     <code>/test/nothere.html/more</code> vont affecter la valeur
149     <code>/more</code> &agrave; la variable d'environnement
150     <code>PATH_INFO</code>.</p>
151
152     <p>L'argument de la directive <directive>AcceptPathInfo</directive>
153     poss&egrave;de trois valeurs possibles :</p>
154     <dl>
155     <dt><code>Off</code></dt><dd>Une requ&ecirc;te ne sera accept&eacute;e que si
156     elle correspond &agrave; un chemin qui existe. Par cons&eacute;quent, une requ&ecirc;te
157     contenant une information de chemin apr&egrave;s le nom de fichier r&eacute;el
158     comme <code>/test/here.html/more</code> dans l'exemple ci-dessus
159     renverra une erreur "404 NOT FOUND".</dd>
160
161     <dt><code>On</code></dt><dd>Une requ&ecirc;te sera accept&eacute;e si la partie
162     principale du chemin correspond &agrave; un fichier existant. Dans
163     l'exemple ci-dessus <code>/test/here.html/more</code>, la requ&ecirc;te
164     sera accept&eacute;e si <code>/test/here.html</code> correspond &agrave; un nom de
165     fichier valide.</dd>
166
167     <dt><code>Default</code></dt><dd>Le traitement des requ&ecirc;tes est
168     d&eacute;termin&eacute; par le <a
169     href="../handler.html">gestionnaire</a> responsable de la requ&ecirc;te.
170     Le gestionnaire de base pour les fichiers normaux rejette par d&eacute;faut
171     les requ&ecirc;tes avec <code>PATH_INFO</code>. Les gestionnaires qui
172     servent des scripts, comme<a
173     href="mod_cgi.html">cgi-script</a> et <a
174     href="mod_isapi.html">isapi-handler</a>, acceptent en g&eacute;n&eacute;ral par
175     d&eacute;faut les requ&ecirc;tes avec <code>PATH_INFO</code>.</dd>
176     </dl>
177
178     <p>Le but premier de la directive <code>AcceptPathInfo</code> est de
179     vous permettre de remplacer le choix du gestionnaire d'accepter ou
180     de rejeter <code>PATH_INFO</code>. Ce remplacement est n&eacute;cessaire
181     par exemple, lorsque vous utilisez un <a
182     href="../filter.html">filtre</a>, comme <a
183     href="mod_include.html">INCLUDES</a>, pour g&eacute;n&eacute;rer un contenu bas&eacute;
184     sur <code>PATH_INFO</code>. Le gestionnaire de base va en g&eacute;n&eacute;ral
185     rejeter la requ&ecirc;te, et vous pouvez utiliser la configuration
186     suivante pour utiliser un tel script :</p>
187 <highlight language="config">
188 &lt;Files "mypaths.shtml"&gt;
189   Options +Includes
190   SetOutputFilter INCLUDES
191   AcceptPathInfo On
192 &lt;/Files&gt;
193     </highlight>
194     
195
196 </usage>
197 </directivesynopsis>
198
199 <directivesynopsis>
200 <name>AccessFileName</name>
201 <description>Nom du fichier de configuration distribu&eacute;</description>
202 <syntax>AccessFileName <var>nom-du-fichier</var>
203 [<var>nom-du-fichier</var>] ...</syntax>
204 <default>AccessFileName .htaccess</default>
205 <contextlist><context>server config</context><context>virtual
206 host</context>
207 </contextlist>
208
209 <usage>
210     <p>Au cours du traitement d'une requ&ecirc;te, le serveur recherche le
211     premier fichier de configuration existant &agrave; partir de la liste
212     de noms dans chaque r&eacute;pertoire composant le chemin du document, &agrave;
213     partir du moment o&ugrave; les fichiers de configuration distribu&eacute;s sont <a
214     href="#allowoverride">activ&eacute;s pour ce r&eacute;pertoire</a>. Par exemple
215     :</p>
216
217     <highlight language="config">AccessFileName .acl</highlight>
218
219     <p>avant de renvoyer le document
220     <code>/usr/local/web/index.html</code>, le serveur va rechercher les
221     fichiers <code>/.acl</code>, <code>/usr/.acl</code>,
222     <code>/usr/local/.acl</code> et <code>/usr/local/web/.acl</code>
223     pour y lire d'&eacute;ventuelles directives, &agrave; moins quelles n'aient &eacute;t&eacute;
224     d&eacute;sactiv&eacute;es avec</p>
225
226     <highlight language="config">
227 &lt;Directory "/"&gt;
228     AllowOverride None
229 &lt;/Directory&gt;
230     </highlight>
231 </usage>
232 <seealso><directive module="core">AllowOverride</directive></seealso>
233 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
234 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
235 </directivesynopsis>
236
237 <directivesynopsis>
238 <name>AddDefaultCharset</name>
239 <description>Param&egrave;tre jeu de caract&egrave;res par d&eacute;faut &agrave; ajouter quand le
240 type de contenu d'une r&eacute;ponse est <code>text/plain</code> ou
241 <code>text/html</code></description>
242 <syntax>AddDefaultCharset On|Off|<var>jeu de caract&egrave;res</var></syntax>
243 <default>AddDefaultCharset Off</default>
244 <contextlist><context>server config</context>
245 <context>virtual host</context><context>directory</context>
246 <context>.htaccess</context></contextlist>
247 <override>FileInfo</override>
248
249 <usage>
250     <p>Cette directive sp&eacute;cifie une valeur par d&eacute;faut pour le param&egrave;tre
251     jeu de caract&egrave;res du type de m&eacute;dia (le nom d'un codage de
252     caract&egrave;res) &agrave; ajouter &agrave; une r&eacute;ponse, si et seulement si le type de
253     contenu de la r&eacute;ponse est soit <code>text/plain</code>, soit
254     <code>text/html</code>. Ceci va remplacer
255     tout jeu de caract&egrave;res sp&eacute;cifi&eacute; dans le corps de la r&eacute;ponse via un
256     &eacute;l&eacute;ment <code>META</code>, bien que cet effet d&eacute;pende en fait
257     souvent de la configuration du client de l'utilisateur. La
258     d&eacute;finition de <code>AddDefaultCharset Off</code> d&eacute;sactive cette
259     fonctionnalit&eacute;. <code>AddDefaultCharset On</code> ajoute un jeu de
260     caract&egrave;res par d&eacute;faut de <code>iso-8859-1</code>. Toute autre valeur
261     peut &ecirc;tre d&eacute;finie via le param&egrave;tre <var>jeu de caract&egrave;res</var>, qui
262     doit appartenir &agrave; la liste des <a
263     href="http://www.iana.org/assignments/character-sets">valeurs de
264     jeux de caract&egrave;res enregistr&eacute;s par l'IANA</a> &agrave; utiliser dans les
265     types de m&eacute;dia Internet (types MIME).
266     Par exemple :</p>
267
268     <highlight language="config">AddDefaultCharset utf-8</highlight>
269
270     <p>La directive <directive>AddDefaultCharset</directive> ne doit
271     &ecirc;tre utilis&eacute;e que lorsque toutes les ressources textes auxquelles
272     elle s'applique poss&egrave;dent le jeu de caract&egrave;re sp&eacute;cifi&eacute;, et qu'il est
273     trop contraignant de d&eacute;finir leur jeu de caract&egrave;res
274     individuellement. Un exemple de ce type est l'ajout du param&egrave;tre jeu
275     de caract&egrave;res aux ressources comportant un contenu g&eacute;n&eacute;r&eacute;, comme les
276     scripts CGI h&eacute;rit&eacute;s qui peuvent &ecirc;tre vuln&eacute;rables &agrave; des attaques de
277     type cross-site scripting &agrave; cause des donn&eacute;es utilisateurs incluses
278     dans leur sortie. Notez cependant qu'une meilleur solution consiste
279     &agrave; corriger (ou supprimer) ces scripts, car la d&eacute;finition d'un jeu de
280     caract&egrave;res par d&eacute;faut ne prot&egrave;ge pas les utilisateurs qui ont activ&eacute;
281     la fonctionnalit&eacute; "D&eacute;tection automatique de l'encodage des
282     caract&egrave;res" dans leur navigateur.</p>
283 </usage>
284 <seealso><directive module="mod_mime">AddCharset</directive></seealso>
285 </directivesynopsis>
286
287 <directivesynopsis>
288 <name>AllowEncodedSlashes</name>
289 <description>D&eacute;termine si les s&eacute;parateurs de chemin encod&eacute;s sont
290 autoris&eacute;s &agrave; transiter dans les URLs tels quels</description>
291 <syntax>AllowEncodedSlashes On|Off|NoDecode</syntax>
292 <default>AllowEncodedSlashes Off</default>
293 <contextlist><context>server config</context><context>virtual
294 host</context>
295 </contextlist>
296 <compatibility>L'option NoDecode est disponible depuis la version
297 2.3.12.</compatibility>
298
299 <usage>
300     <p>La directive <directive>AllowEncodedSlashes</directive> permet
301     l'utilisation des URLs contenant des s&eacute;parateurs de chemin
302     encod&eacute;s dans la partie chemin
303     (<code>%2F</code> pour <code>/</code> et m&ecirc;me <code>%5C</code> pour
304     <code>\</code> sur les syst&egrave;mes concern&eacute;s).</p>
305
306     <p>Avec la valeur par d&eacute;faut, <code>Off</code>, de telles URLs sont
307     refus&eacute;es et provoquent le renvoi d'une erreur 404 (Not found).</p>
308
309     <p>Avec la valeur <code>On</code>, ces URLs sont accept&eacute;es, et les
310     slashes encod&eacute;s sont d&eacute;cod&eacute;s comme tout autre caract&egrave;re cod&eacute;.</p>
311
312     <p>Avec la valeur <code>NoDecode</code>, ces URLs sont accept&eacute;es,
313     mais les slashes cod&eacute;s ne sont pas d&eacute;cod&eacute;s et laiss&eacute;s dans leur &eacute;tat
314     cod&eacute;.</p>
315
316     <p>D&eacute;finir <directive>AllowEncodedSlashes</directive> &agrave;
317     <code>On</code> est surtout utile en association avec
318     <code>PATH_INFO</code>.</p>
319
320     <note><title>Note</title>
321       <p>Si le codage des slashes dans la partie chemin est n&eacute;cessaire,
322       l'utilisation de l'option <code>NoDecode</code> est fortement
323       recommand&eacute;e par mesure de s&eacute;curit&eacute;. Permettre le d&eacute;codage des
324       slashes pourrait &eacute;ventuellement induire l'autorisation de chemins
325       non s&ucirc;rs.</p>
326     </note>
327 </usage>
328 <seealso><directive module="core">AcceptPathInfo</directive></seealso>
329 </directivesynopsis>
330
331 <directivesynopsis>
332 <name>AllowOverride</name>
333 <description>Types de directives autoris&eacute;es dans les fichiers
334 <code>.htaccess</code></description>
335 <syntax>AllowOverride All|None|<var>type directive</var>
336 [<var>type directive</var>] ...</syntax>
337 <default>AllowOverride None &agrave; partir de la version 2.3.9, AllowOverride
338 All pour les versions ant&eacute;rieures</default>
339 <contextlist><context>directory</context></contextlist>
340
341 <usage>
342     <p>Lorsque le serveur trouve un fichier <code>.htaccess</code> (dont
343     le nom est d&eacute;fini par la directive <directive
344     module="core">AccessFileName</directive>), il doit savoir lesquelles
345     des directives plac&eacute;es dans ce fichier sont autoris&eacute;es &agrave; modifier la
346     configuration pr&eacute;existante.</p>
347
348     <note><title>Valable seulement dans les sections
349     &lt;Directory&gt;</title>
350     La directive <directive>AllowOverride</directive> ne peut &ecirc;tre
351     utilis&eacute;e que dans les sections <directive type="section"
352     module="core">Directory</directive> d&eacute;finies sans expressions
353     rationnelles, et non dans les sections <directive
354     type="section" module="core">Location</directive>, <directive
355     module="core" type="section">DirectoryMatch</directive> ou
356     <directive type="section" module="core">Files</directive>.
357     </note>
358
359     <p>Lorsque cette directive et la directive <directive
360     module="core">AllowOverrideList</directive> sont d&eacute;finies &agrave; <code>None</code>, les
361     fichiers <a href="#accessfilename">.htaccess</a> sont totalement
362     ignor&eacute;s. Dans ce cas, le serveur n'essaiera m&ecirc;me pas de lire les
363     fichiers <code>.htaccess</code> du syst&egrave;me de fichiers.</p>
364
365     <p>Lorsque cette directive est d&eacute;finie &agrave; <code>All</code>, toute
366     directive valable dans le <a
367     href="directive-dict.html#Context">Contexte</a> .htaccess sera
368     autoris&eacute;e dans les fichiers <code>.htaccess</code>.</p>
369
370     <p>L'argument <var>type directive</var> peut contenir les
371     groupements de directives suivants :</p>
372
373     <dl>
374       <dt>AuthConfig</dt>
375
376       <dd>
377
378       Permet l'utilisation des directives d'autorisation (<directive
379       module="mod_authz_dbm">AuthDBMGroupFile</directive>,
380       <directive module="mod_authn_dbm">AuthDBMUserFile</directive>,
381       <directive module="mod_authz_groupfile">AuthGroupFile</directive>,
382       <directive module="mod_authn_core">AuthName</directive>,
383       <directive module="mod_authn_core">AuthType</directive>, <directive
384       module="mod_authn_file">AuthUserFile</directive>, <directive
385       module="mod_authz_core">Require</directive>, <em>etc...</em>).</dd>
386
387       <dt>FileInfo</dt>
388
389       <dd>
390       Permet l'utilisation des directives qui contr&ocirc;lent les types de
391       documents (directives  <directive
392       module="core">ErrorDocument</directive>, <directive
393       module="core">ForceType</directive>, <directive
394       module="mod_negotiation">LanguagePriority</directive>,
395       <directive module="core">SetHandler</directive>, <directive
396       module="core">SetInputFilter</directive>, <directive
397       module="core">SetOutputFilter</directive>, et directives du
398       module <module>mod_mime</module> Add* et Remove*), des metadonn&eacute;es
399       des documents (<directive
400       module="mod_headers">Header</directive>, <directive
401       module="mod_headers">RequestHeader</directive>, <directive
402       module="mod_setenvif">SetEnvIf</directive>, <directive
403       module="mod_setenvif">SetEnvIfNoCase</directive>, <directive
404       module="mod_setenvif">BrowserMatch</directive>, <directive
405       module="mod_usertrack">CookieExpires</directive>, <directive
406       module="mod_usertrack">CookieDomain</directive>, <directive
407       module="mod_usertrack">CookieStyle</directive>, <directive
408       module="mod_usertrack">CookieTracking</directive>, <directive
409       module="mod_usertrack">CookieName</directive>), des directives du
410       module <module>mod_rewrite</module> directives (<directive
411       module="mod_rewrite">RewriteEngine</directive>, <directive
412       module="mod_rewrite">RewriteOptions</directive>, <directive
413       module="mod_rewrite">RewriteBase</directive>, <directive
414       module="mod_rewrite">RewriteCond</directive>, <directive
415       module="mod_rewrite">RewriteRule</directive>), des directives du
416       module <module>mod_alias</module> directives (<directive
417       module="mod_alias">Redirect</directive>, <directive
418       module="mod_alias">RedirectTemp</directive>, <directive
419       module="mod_alias">RedirectPermanent</directive>, <directive
420       module="mod_alias">RedirectMatch</directive>), et de la directive
421       <directive module="mod_actions">Action</directive> du module
422       <module>mod_actions</module>.
423       </dd>
424
425       <dt>Indexes</dt>
426
427       <dd>
428       Permet l'utilisation des directives qui contr&ocirc;lent l'indexation
429       des r&eacute;pertoires (<directive
430       module="mod_autoindex">AddDescription</directive>,
431       <directive module="mod_autoindex">AddIcon</directive>, <directive
432       module="mod_autoindex">AddIconByEncoding</directive>,
433       <directive module="mod_autoindex">AddIconByType</directive>,
434       <directive module="mod_autoindex">DefaultIcon</directive>, <directive
435       module="mod_dir">DirectoryIndex</directive>, <directive
436       module="mod_dir">FallbackResource</directive>, <a
437       href="mod_autoindex.html#indexoptions.fancyindexing"><code>FancyIndexing</code></a>,
438       <directive
439       module="mod_autoindex">HeaderName</directive>, <directive
440       module="mod_autoindex">IndexIgnore</directive>, <directive
441       module="mod_autoindex">IndexOptions</directive>, <directive
442       module="mod_autoindex">ReadmeName</directive>,
443       <em>etc...</em>).</dd>
444
445       <dt>Limit</dt>
446
447       <dd>
448       Permet l'utilisation des directives contr&ocirc;lant l'acc&egrave;s au serveur
449       (<directive
450       module="mod_access_compat">Allow</directive>, <directive
451       module="mod_access_compat">Deny</directive> et <directive
452       module="mod_access_compat">Order</directive>).</dd>
453
454 <!-- TODO - Update this for 2.4 syntax -->
455
456
457
458
459       <dt>Nonfatal=[Override|Unknown|All]</dt>
460
461       <dd>
462       Permet d'utiliser l'option AllowOverride pour rendre les erreurs
463       de syntaxe non fatales dans les fichiers .htaccess : au lieu de
464       causer une Internal Server Error, les directives non autoris&eacute;es ou
465       non reconnues seront ignor&eacute;es et un avertissement enregistr&eacute; dans
466       le journal :
467       <ul>
468           <li><strong>Nonfatal=Override</strong> rend les directives
469           interdite par AllowOverride non fatales.</li>
470           <li><strong>Nonfatal=Unknown</strong> rend les directives
471           inconnues non fatales. Sont concern&eacute;es les erreurs de frappe
472           et les directives impl&eacute;ment&eacute;es par un module non charg&eacute;.</li>
473           <li><strong>Nonfatal=All</strong> rend toutes les directives
474           pr&eacute;c&eacute;dentes non fatales.</li>
475       </ul>
476       <p>Notez qu'une erreur de syntaxe dans une directive valide
477       causera toujours une internal server error.</p>
478       <note type="warning"><title>S&eacute;curit&eacute;</title>
479           Les erreurs non fatales peuvent &ecirc;tre &agrave; l'origine de probl&egrave;mes
480           de s&eacute;curit&eacute; pour les utilisateurs de fichiers .htaccess. Par
481           exemple, si AllowOverride interdit AuthConfig, toute
482           configuration utilisateur destin&eacute;e &agrave; restreindre l'acc&egrave;s &agrave; un
483           site ne sera pas prise en compte.
484       </note>
485       </dd>
486
487       <dt>Options[=<var>Option</var>,...]</dt>
488
489       <dd>
490       Permet l'utilisation des directives contr&ocirc;lant les fonctionnalit&eacute;s
491       sp&eacute;cifiques d'un r&eacute;pertoire (<directive
492       module="core">Options</directive> et <directive
493       module="mod_include">XBitHack</directive>). "Options" doit &ecirc;tre
494       suivi d'un signe "&eacute;gal", puis d'une liste d'options s&eacute;par&eacute;es par des
495       virgules (pas d'espaces) ; ces options doivent &ecirc;tre d&eacute;finies &agrave;
496       l'aide de la commande <directive
497       module="core">Options</directive>.
498
499       <note><title>D&eacute;sactivation implicite des options</title>
500       <p>Bien que la liste des options disponibles dans les fichiers
501       .htaccess puisse &ecirc;tre limit&eacute;e par cette directive, tant qu'un
502       directive <directive module="core">Options</directive> est
503       autoris&eacute;e, toute autre option h&eacute;rit&eacute;e peut &ecirc;tre d&eacute;sactiv&eacute;e en
504       utilisant la syntaxe non-relative. En d'autres termes, ce
505       m&eacute;canisme ne peut pas forcer une option sp&eacute;cifique &agrave; rester
506       <em>activ&eacute;e</em> tout en permettant &agrave; toute autre option d'&ecirc;tre
507       activ&eacute;e.
508       </p></note>
509
510       <example>
511       AllowOverride Options=Indexes,MultiViews
512       </example>
513       
514       </dd>
515     </dl>
516
517     <p>Exemple :</p>
518
519     <highlight language="config">AllowOverride AuthConfig Indexes</highlight>
520
521     <p>Dans l'exemple ci-dessus, toutes les directives qui ne font
522     partie ni du groupe <code>AuthConfig</code>, ni du groupe
523     <code>Indexes</code>, provoquent une erreur "internal
524     server error".</p>
525
526     <note><p>Pour des raisons de s&eacute;curit&eacute; et de performance, ne
527     d&eacute;finissez pas <code>AllowOverride</code> &agrave; autre chose que
528     <code>None</code> dans votre bloc <code>&lt;Directory "/"&gt;</code>.
529     Recherchez plut&ocirc;t (ou cr&eacute;ez) le bloc <code>&lt;Directory&gt;</code>
530     qui se r&eacute;f&egrave;re au r&eacute;pertoire o&ugrave; vous allez pr&eacute;cis&eacute;ment placer un
531     fichier <code>.htaccess</code>.</p>
532     </note>
533 </usage>
534 <seealso><directive module="core">AccessFileName</directive></seealso>
535 <seealso><directive module="core">AllowOverrideList</directive></seealso>
536 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
537 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
538 </directivesynopsis>
539
540 <directivesynopsis>
541 <name>AllowOverrideList</name>
542 <description>Directives autoris&eacute;es dans les fichiers <code>.htaccess</code></description>
543 <syntax>AllowOverrideList None|<var>directive</var>
544 [<var>directive-type</var>] ...</syntax>
545 <default>AllowOverrideList None</default>
546 <contextlist><context>directory</context></contextlist>
547
548 <usage>
549     <p>Lorsque le serveur trouve un fichier <code>.htaccess</code>
550     (comme sp&eacute;cifi&eacute; par la directive <directive
551     module="core">AccessFileName</directive>), il doit savoir lesquelles
552     des directives d&eacute;clar&eacute;es dans ce fichier peuvent remplacer des
553     directives des fichiers de configuration du serveur.</p>
554
555     <note><title>Seulement disponible dans les sections &lt;Directory&gt;</title>
556     La directive <directive>AllowOverrideList</directive> n'est
557     disponible que dans les sections <directive type="section"
558     module="core">Directory</directive> sp&eacute;cifi&eacute;es sans expressions
559     rationnelles.
560     </note>
561
562     <p>Lorsque cette directive et la directive <directive
563     module="core">AllowOverride</directive> sont d&eacute;finies &agrave;
564     <code>None</code>, les fichiers <a
565     href="#accessfilename">.htaccess</a> sont totalement ignor&eacute;s. Dans
566     ce cas, le serveur ne cherchera m&ecirc;me pas &agrave; lire des fichiers
567     <code>.htaccess</code> dans le syst&egrave;me de fichiers.</p>
568
569     <p>Example:</p>
570
571     <highlight language="config">
572 AllowOverride None
573 AllowOverrideList Redirect RedirectMatch
574     </highlight>
575
576     <p>Dans l'exemple ci-dessus, seules les directives
577     <code>Redirect</code> et <code>RedirectMatch</code> sont autoris&eacute;es.
578     Toutes les autres provoqueront une erreur interne du serveur.</p>
579
580     <p>Example:</p>
581
582     <highlight language="config">
583 AllowOverride AuthConfig
584 AllowOverrideList CookieTracking CookieName
585     </highlight>
586
587     <p>Dans l'exemple ci-dessus, la directive <directive
588     module="core">AllowOverride</directive> autorise les directives du
589     groupement <code>AuthConfig</code>, et
590     <directive>AllowOverrideList</directive> n'autorise que deux
591     directives du groupement <code>FileInfo</code>. Toutes les autres
592     provoqueront une erreur interne du serveur.</p>
593 </usage>
594
595 <seealso><directive module="core">AccessFileName</directive></seealso>
596 <seealso><directive module="core">AllowOverride</directive></seealso>
597 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
598 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
599 </directivesynopsis>
600
601 <directivesynopsis>
602 <name>CGIMapExtension</name>
603 <description>Technique permettant de localiser l'interpr&eacute;teur des
604 scripts CGI</description>
605 <syntax>CGIMapExtension <var>chemin CGI</var> <var>.extension</var></syntax>
606 <contextlist><context>directory</context><context>.htaccess</context>
607 </contextlist>
608 <override>FileInfo</override>
609 <compatibility>NetWare uniquement</compatibility>
610
611 <usage>
612     <p>Cette directive permet de contr&ocirc;ler la mani&egrave;re dont Apache httpd trouve
613     l'interpr&eacute;teur servant &agrave; ex&eacute;cuter les scripts CGI. Par exemple, avec
614     la d&eacute;finition <code>CGIMapExtension sys:\foo.nlm .foo</code>, tous
615     les fichiers scripts CGI poss&eacute;dant une extension <code>.foo</code>
616     seront pass&eacute;s &agrave; l'interpr&eacute;teur FOO.</p>
617 </usage>
618 </directivesynopsis>
619
620 <directivesynopsis>
621 <name>CGIPassAuth</name>
622 <description>Active la transmission d'en-t&ecirc;tes d'autorisation HTTP aux scripts en
623 tant que variables CGI</description>
624 <syntax>CGIPassAuth On|Off</syntax>
625 <default>CGIPassAuth Off</default>
626 <contextlist><context>directory</context><context>.htaccess</context>
627 </contextlist>
628 <override>AuthConfig</override>
629 <compatibility>Disponible &agrave; partir de la version 2.4.13 du serveur HTTP
630 Apache</compatibility>
631
632 <usage>
633     <p>La directive <directive>CGIPassAuth</directive> permet aux
634     scripts d'acc&eacute;der aux en-t&ecirc;tes d'autorisation HTTP tels que
635     <code>Authorization</code>, en-t&ecirc;te n&eacute;cessaire aux scripts qui
636     impl&eacute;mente une authentification HTTP de base. Normalement, ces
637     en-t&ecirc;tes HTTP sont invisibles pour les scripts car ils leurs
638     permettraient de voir les identifiants et mots de passe
639     utilis&eacute;s pour acc&eacute;der au serveur lorsque l'authentification HTTP de
640     base est activ&eacute;e au niveau du serveur web. Cette directive doit &ecirc;tre
641     d&eacute;finie &agrave; "On" lorsque des scripts sont autoris&eacute;s &agrave; impl&eacute;menter une
642     authentification HTTP de base.</p>
643
644     <p>Cette directive constitue une alternative &agrave; l'option de
645     compilation <code>SECURITY_HOLE_PASS_AUTHORIZATION</code> qui &eacute;tait
646     d&eacute;j&agrave; disponible dans les versions pr&eacute;c&eacute;dentes du serveur HTTP
647     Apache.</p>
648
649     <p>Cette option est prise en compte par tout module qui utilise
650     <code>ap_add_common_vars()</code>, comme <module>mod_cgi</module>,
651     <module>mod_cgid</module>, <module>mod_proxy_fcgi</module>,
652     <module>mod_proxy_scgi</module>, etc... En particulier, elle affecte
653     les modules qui ne traitent pas &agrave; proprement parler les requ&ecirc;tes,
654     mais utilisent quand-m&ecirc;me cette API, comme
655     <module>mod_include</module> ou <module>mod_ext_filter</module>. Les
656     modules tiers qui n'utilisent pas <code>ap_add_common_vars()</code>
657     peuvent aussi choisir de prendre en compte cette option.</p>
658 </usage>
659 </directivesynopsis>
660
661 <directivesynopsis>
662 <name>ContentDigest</name>
663 <description>Active la g&eacute;n&eacute;ration d'un en-t&ecirc;te <code>Content-MD5</code>
664 dans la r&eacute;ponse HTTP</description>
665 <syntax>ContentDigest On|Off</syntax>
666 <default>ContentDigest Off</default>
667 <contextlist><context>server config</context><context>virtual
668 host</context>
669 <context>directory</context><context>.htaccess</context>
670 </contextlist>
671 <override>Options</override>
672 <status>Exp&eacute;rimental</status>
673
674 <usage>
675     <p>Cette directive active la g&eacute;n&eacute;ration d'un en-t&ecirc;te
676     <code>Content-MD5</code> selon les d&eacute;finitions des RFC 1864 et
677     2616.</p>
678
679     <p>MD5 est un algorithme permettant de g&eacute;n&eacute;rer un condens&eacute; (parfois
680     appel&eacute; "empreinte") &agrave; partir de donn&eacute;es d'une taille al&eacute;atoire ; le
681     degr&eacute; de pr&eacute;cision est tel que la moindre alt&eacute;ration des donn&eacute;es
682     d'origine entra&icirc;ne une alt&eacute;ration de l'empreinte.</p>
683
684     <p>L'en-t&ecirc;te <code>Content-MD5</code> permet de v&eacute;rifier
685     l'int&eacute;grit&eacute; de la r&eacute;ponse HTTP dans son ensemble. Un serveur mandataire
686     ou un client peut utiliser cet en-t&ecirc;te pour rechercher une
687     &eacute;ventuelle modification accidentelle de la r&eacute;ponse au cours de sa
688     transmission. Exemple d'en-t&ecirc;te :</p>
689
690     <example>
691       Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
692     </example>
693
694     <p>Notez que des probl&egrave;mes de performances peuvent affecter votre
695     serveur, car l'empreinte est g&eacute;n&eacute;r&eacute;e pour chaque requ&ecirc;te (il n'y a
696     pas de mise en cache).</p>
697
698     <p>L'en-t&ecirc;te <code>Content-MD5</code> n'est envoy&eacute; qu'avec les
699     documents servis par le module <module>core</module>, &agrave; l'exclusion
700     de tout autre module. Ainsi, les documents SSI, les sorties de
701     scripts CGI, et les r&eacute;ponses &agrave; des requ&ecirc;tes partielles (byte range)
702     ne comportent pas cet en-t&ecirc;te.</p>
703 </usage>
704 </directivesynopsis>
705
706 <directivesynopsis>
707 <name>DefaultRuntimeDir</name>
708 <description>R&eacute;pertoire de base des fichiers cr&eacute;&eacute;s au cours de l'ex&eacute;cution du serveur</description>
709 <syntax>DefaultRuntimeDir <var>chemin-r&eacute;pertoire</var></syntax>
710 <default>DefaultRuntimeDir DEFAULT_REL_RUNTIMEDIR (logs/)</default>
711 <contextlist><context>server config</context></contextlist>
712 <compatibility>Disponible depuis de la version 2.4.2 du serveur HTTP
713 Apache</compatibility>
714
715 <usage>
716     <p>La directive <directive>DefaultRuntimeDir</directive> permet de
717     d&eacute;finir le r&eacute;pertoire dans lequel le serveur va cr&eacute;er les diff&eacute;rents
718     fichiers relatifs &agrave; son ex&eacute;cution (m&eacute;moire partag&eacute;e, verrous,
719     etc...). Si le chemin sp&eacute;cifi&eacute; est relatif, le chemin absolu sera
720     g&eacute;n&eacute;r&eacute; relativement &agrave; la valeur de la directive
721     <directive>ServerRoot</directive>.</p>
722
723     <p><strong>Example</strong></p>
724    <highlight language="config">
725 DefaultRuntimeDir scratch/
726     </highlight>
727
728     <p>La valeur par d&eacute;faut de la directive
729     <directive>DefaultRuntimeDir</directive> peut &ecirc;tre modifi&eacute;e en
730     changeant la valeur de la macro <code>DEFAULT_REL_RUNTIMEDIR</code>
731     d&eacute;finie &agrave; la compilation.</p>
732
733    <p>Note: si la valeur de <directive>ServerRoot</directive> n'a pas
734    &eacute;t&eacute; sp&eacute;cifi&eacute;e avant d'utiliser cette directive, c'est la valeur par
735    d&eacute;faut de <directive>ServerRoot</directive> qui sera utilis&eacute;e pour
736    d&eacute;finir la base du r&eacute;pertoire.</p>
737
738 </usage>
739 <seealso>Voir les <a
740 href="../misc/security_tips.html#serverroot">conseils &agrave; propos de
741 s&eacute;surit&eacute;</a> pour plus d'informations en vue de d&eacute;finir correctement les
742 permissions sur la racine du serveur <directive>ServerRoot</directive></seealso>
743 </directivesynopsis>
744
745 <directivesynopsis>
746 <name>DefaultType</name>
747 <description>Les seuls effets de cette directive sont des &eacute;missions
748 d'avertissements si sa valeur est diff&eacute;rente de <code>none</code>. Dans
749 les versions pr&eacute;c&eacute;dentes, DefaultType permettait de sp&eacute;cifier un type de
750 m&eacute;dia &agrave; assigner par d&eacute;faut au contenu d'une r&eacute;ponse pour lequel aucun
751 autre type de m&eacute;dia n'avait &eacute;t&eacute; trouv&eacute;.
752 </description>
753 <syntax>DefaultType <var>type m&eacute;dia|none</var></syntax>
754 <default>DefaultType none</default>
755 <contextlist><context>server config</context><context>virtual
756 host</context>
757 <context>directory</context><context>.htaccess</context>
758 </contextlist>
759 <override>FileInfo</override>
760 <compatibility>Tous les arguments, except&eacute; <code>none</code>, sont
761 DESACTIV&Eacute;S &agrave; partir de la version 2.3.0.</compatibility>
762
763 <usage>
764     <p>Cette directive a &eacute;t&eacute; d&eacute;sactiv&eacute;e. Pour la compatibilit&eacute;
765     ascendante avec les anciens fichiers de configuration, elle peut
766     &ecirc;tre sp&eacute;cifi&eacute;e avec la valeur <code>none</code>, c'est &agrave; dire sans
767     type de m&eacute;dium par d&eacute;faut. Par exemple :</p>
768
769     <highlight language="config">DefaultType None</highlight>
770
771     <p><code>DefaultType None</code> n'est disponible que dans les
772     versions d'Apache 2.2.7 et sup&eacute;rieures.</p>
773
774     <p>Utilisez le fichier de configuration mime.types et la directive
775     <directive module="mod_mime">AddType</directive> pour configurer
776     l'assignement d'un type de m&eacute;dium via les extensions de fichiers, ou
777     la directive <directive module="core">ForceType</directive> pour
778     attribuer un type de m&eacute;dium &agrave; des ressources sp&eacute;cifiques. Dans le
779     cas contraire, le serveur enverra sa r&eacute;ponse sans champ d'en-t&ecirc;te
780     Content-Type, et le destinataire devra d&eacute;terminer lui-m&ecirc;me le type
781     de m&eacute;dium.</p>
782 </usage>
783 </directivesynopsis>
784
785 <directivesynopsis>
786 <name>Define</name>
787 <description>Permet de d&eacute;finir une variable</description>
788 <syntax>Define <var>nom-param&egrave;tre</var> [<var>valeur-param&egrave;tre</var>]</syntax>
789 <contextlist><context>server config</context><context>virtual host</context>
790 <context>directory</context></contextlist>
791
792 <usage>
793     <p>Avec un seul param&egrave;tre, l'effet de la directive
794     <directive>Define</directive> est identique &agrave; celui de l'argument
795     <code>-D</code> du programme <program>httpd</program>. Il permet de
796     modifier le comportement des sections <directive module="core"
797     type="section">IfDefine</directive> sans avoir &agrave; ajouter d'argument
798     <code>-D</code> au sein des scripts de d&eacute;marrage.</p>
799
800     <p>De plus, le second param&egrave;tre permet d'affecter une valeur &agrave; la
801     variable d&eacute;finie par le premier. Cette variable peut &ecirc;tre r&eacute;f&eacute;renc&eacute;e
802     dans le fichier de configuration via la syntaxe <code>${VAR}</code>.
803     La port&eacute;e de la variable est toujours globale, et n'est jamais
804     limit&eacute;e &agrave; la section de configuration courante.</p>
805
806     <highlight language="config">
807 &lt;IfDefine TEST&gt;
808   Define servername test.example.com
809 &lt;/IfDefine&gt;
810 &lt;IfDefine !TEST&gt;
811   Define servername www.example.com
812   Define SSL
813 &lt;/IfDefine&gt;
814
815     DocumentRoot "/var/www/${servername}/htdocs"
816     </highlight>
817
818     <p>Le caract&egrave;re ":" est interdit dans les noms de variables afin
819     d'&eacute;viter les conflits avec la syntaxe de la directive <directive
820     module="mod_rewrite">RewriteMap</directive>.</p>
821
822     <p>Si cette directive est d&eacute;finie au sein d'un bloc VirtualHost, les
823     changements qu'elle induit sont visibles de toute directive
824     ult&eacute;rieure, au del&agrave; de tout bloc VirtualHost.</p>
825 </usage>
826 </directivesynopsis>
827
828 <directivesynopsis type="section">
829 <name>Directory</name>
830 <description>Regroupe un ensemble de directives qui ne s'appliquent
831 qu'au r&eacute;pertoire concern&eacute; du syst&egrave;me de fichiers, &agrave; ses
832 sous-r&eacute;pertoires, et &agrave; leur contenu.</description>
833 <syntax>&lt;Directory <var>chemin r&eacute;pertoire</var>&gt;
834 ... &lt;/Directory&gt;</syntax>
835 <contextlist><context>server config</context><context>virtual
836 host</context>
837 </contextlist>
838
839 <usage>
840     <p>Les balises <directive type="section">Directory</directive> et
841     <code>&lt;/Directory&gt;</code> permettent de regrouper un ensemble
842     de directives qui ne s'appliquent qu'au r&eacute;pertoire pr&eacute;cis&eacute;,
843     &agrave; ses sous-r&eacute;pertoires, et aux fichiers situ&eacute;s dans ces
844     sous-r&eacute;pertoires. Toute directive
845     autoris&eacute;e dans un contexte de r&eacute;pertoire peut &ecirc;tre utilis&eacute;e.
846     <var>chemin r&eacute;pertoire</var> est soit le chemin absolu d'un
847     r&eacute;pertoire, soit une cha&icirc;ne de caract&egrave;res avec caract&egrave;res g&eacute;n&eacute;riques
848     utilisant la comparaison Unix de style shell. Dans une cha&icirc;ne de
849     caract&egrave;res avec caract&egrave;res g&eacute;n&eacute;riques, <code>?</code> correspond &agrave;
850     un caract&egrave;re quelconque, et <code>*</code> &agrave; toute cha&icirc;ne de
851     caract&egrave;res. Les intervalles de caract&egrave;res <code>[]</code> sont aussi
852     autoris&eacute;s. Aucun caract&egrave;re g&eacute;n&eacute;rique ne peut remplacer le caract&egrave;re
853     `/', si bien que l'expression <code>&lt;Directory
854     "/*/public_html"&gt;</code> ne conviendra pas pour le chemin
855      * <code>/home/user/public_html</code>, alors que <code>&lt;Directory
856     "/home/*/public_html"&gt;</code> conviendra. Exemple :</p>
857
858     <highlight language="config">
859 &lt;Directory "/usr/local/httpd/htdocs"&gt;
860   Options Indexes FollowSymLinks
861 &lt;/Directory&gt;
862     </highlight>
863
864     <p>Les chemins de r&eacute;pertoires contenant des espaces <em>doivent</em> &ecirc;tre
865     entour&eacute;s de guillemets afin d'emp&ecirc;cher l'interpr&eacute;tation de ces
866     espaces comme fins d'arguments.</p>
867
868     <note>
869       <p>Soyez prudent avec l'argument <var>chemin r&eacute;pertoire</var> : il
870       doit correspondre exactement au chemin du syst&egrave;me de fichier
871       qu'Apache httpd utilise pour acc&eacute;der aux fichiers. Les directives
872       comprises dans une section <code>&lt;Directory&gt;</code> ne
873       s'appliqueront pas aux fichiers du m&ecirc;me r&eacute;pertoire auxquels on
874       aura acc&eacute;d&eacute; via un chemin diff&eacute;rent, per exemple via un lien
875       symbolique.</p>
876     </note>
877
878     <p> Les <glossary ref="regex">Expressions rationnelles</glossary>
879     peuvent aussi &ecirc;tre utilis&eacute;es en ajoutant le caract&egrave;re
880     <code>~</code>. Par exemple :</p>
881
882     <highlight language="config">
883 &lt;Directory ~ "^/www/[0-9]{3}"&gt;
884
885 &lt;/Directory&gt;
886 </highlight>
887
888     <p>pourra correspondre &agrave; tout r&eacute;pertoire situ&eacute; dans /www/ et dont le
889     nom se compose de trois chiffres.</p>
890
891     <p>Si plusieurs sections <directive
892     type="section">Directory</directive> (sans expression rationnelle)
893     correspondent au r&eacute;pertoire (ou &agrave; un de ses parents) qui contient le
894     document, les directives de la section <directive
895     type="section">Directory</directive> dont le chemin est le plus
896     court sont appliqu&eacute;es en premier, en s'intercalant avec les
897     directives des fichiers <a href="#accessfilename">.htaccess</a>. Par
898     exemple, avec</p>
899
900     <highlight language="config">
901 &lt;Directory "/"&gt;
902   AllowOverride None
903 &lt;/Directory&gt;
904
905 &lt;Directory "/home"&gt;
906   AllowOverride FileInfo
907 &lt;/Directory&gt;
908     </highlight>
909
910     <p>l'acc&egrave;s au document <code>/home/web/dir/doc.html</code> emprunte
911     le chemin suivant :</p>
912
913     <ul>
914       <li>Aplication de la directive <code>AllowOverride None</code>
915       (qui d&eacute;sactive les fichiers <code>.htaccess</code>).</li>
916
917       <li>Application de la directive <code>AllowOverride
918       FileInfo</code> (pour le r&eacute;pertoire <code>/home</code>).</li>
919
920       <li>Application de toute directive <code>FileInfo</code> qui se
921       trouverait dans d'&eacute;ventuels fichiers <code>/home/.htaccess</code>,
922       <code>/home/web/.htaccess</code> ou
923       <code>/home/web/dir/.htaccess</code>, dans cet ordre.</li>
924     </ul>
925
926     <p>Les directives associ&eacute;es aux r&eacute;pertoires sous forme d'expressions
927     rationnelles ne sont prises en compte qu'une fois toutes les
928     directives des sections sans expressions rationnelles appliqu&eacute;es.
929     Alors, tous les r&eacute;pertoires avec expressions rationnelles sont
930     test&eacute;s selon l'ordre dans lequel ils apparaissent dans le fichier de
931     configuration. Par exemple, avec</p>
932
933     <highlight language="config">
934 &lt;Directory ~ "abc$"&gt;
935   # ... directives ici ...
936 &lt;/Directory&gt;
937     </highlight>
938
939     <p>la section avec expression rationnelle ne sera prise en compte
940     qu'apr&egrave;s les sections <directive
941     type="section">Directory</directive> sans expression rationnelle
942     et les fichiers <code>.htaccess</code>. Alors, l'expression
943     rationnelle conviendra pour <code>/home/abc/public_html/abc</code>
944     et la section <directive type="section">Directory</directive>
945     correspondante s'appliquera.</p>
946
947    <p><strong>Notez que la politique d'acc&egrave;s par d&eacute;faut
948    dans les sections <code>&lt;Directory "/"&gt;</code> consiste &agrave;
949    autoriser tout acc&egrave;s sans restriction. Ceci signifie qu'Apache httpd va servir tout fichier
950    correspondant &agrave; une URL. Il est recommand&eacute; de modifier cette
951    situation &agrave; l'aide d'un bloc du style</strong></p>
952
953     <highlight language="config">
954 &lt;Directory "/"&gt;
955   Require all denied
956 &lt;/Directory&gt;
957     </highlight>
958
959     <p><strong>puis d'affiner la configuration pour les r&eacute;pertoires que vous
960     voulez rendre accessibles. Voir la page <a
961     href="../misc/security_tips.html">Conseils &agrave; propos de s&eacute;curit&eacute;</a>
962     pour plus de d&eacute;tails.</strong></p>
963
964     <p>Les sections <directive type="section">Directory</directive> se situent
965     dans le fichier <code>httpd.conf</code>. Les directives <directive
966     type="section">Directory</directive> ne peuvent pas &ecirc;tre imbriqu&eacute;es
967     et ne sont pas autoris&eacute;es dans les sections <directive module="core"
968     type="section">Limit</directive> ou <directive module="core"
969     type="section">LimitExcept</directive>.</p>
970 </usage>
971 <seealso><a href="../sections.html">Comment fonctionnent les sections
972 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour des
973 explications &agrave; propos de la mani&egrave;re dont ces diff&eacute;rentes sections se
974 combinent entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te</seealso>
975 </directivesynopsis>
976
977 <directivesynopsis type="section">
978 <name>DirectoryMatch</name>
979 <description>Regroupe des directives qui s'appliquent au contenu de r&eacute;pertoires
980 du syst&egrave;me de fichiers correspondant &agrave; une expression rationnelle</description>
981 <syntax>&lt;DirectoryMatch <var>regex</var>&gt;
982 ... &lt;/DirectoryMatch&gt;</syntax>
983 <contextlist><context>server config
984 </context><context>virtual host</context>
985 </contextlist>
986
987 <usage>
988     <p>Les balises <directive type="section">DirectoryMatch</directive>
989     et <code>&lt;/DirectoryMatch&gt;</code> permettent de regrouper un
990     ensemble de directives qui ne s'appliqueront qu'au r&eacute;pertoire
991     pr&eacute;cis&eacute; (et aux fichiers qu'il contient), comme pour la section <directive
992     module="core" type="section">Directory</directive>. Cependant, le
993     r&eacute;pertoire est pr&eacute;cis&eacute; sous la forme d'une <glossary
994     ref="regex">expression rationnelle</glossary>. Par exemple :</p>
995
996     <highlight language="config">
997 &lt;DirectoryMatch "^/www/(.+/)?[0-9]{3}/"&gt;
998     # ...
999 &lt;/DirectoryMatch&gt;
1000 </highlight>
1001
1002     <p>convient pour les sous-r&eacute;pertoires de <code>/www/</code> dont
1003     le nom se compose de trois chiffres.</p>
1004
1005     <note><title>Compatibilit&eacute;</title>
1006       Avant la version 2.3.9, cette directive s'appliquait aussi aux
1007       sous-r&eacute;pertoires (comme la directive <directive module="core"
1008       type="section">Directory</directive>), et ne tenait pas compte du
1009       symbole de fin de ligne ($). Depuis la version 2.3.9, seuls les
1010       r&eacute;pertoires qui correspondent &agrave; l'expression sont affect&eacute;s par les
1011       directives contenues dans la section.
1012     </note>
1013
1014     <note><title>slash de fin</title>
1015       Cette directive s'applique aux requ&ecirc;tes pour des r&eacute;pertoires avec
1016       ou sans slash de fin ; les expressions contenant un symbole de fin
1017       de ligne ($) doivent donc faire l'objet d'une attention
1018       particuli&egrave;re.
1019     </note>
1020
1021     <p>A partir de la version 2.4.8, les groupes nomm&eacute;s et les
1022     r&eacute;f&eacute;rences arri&egrave;res sont extraits et enregistr&eacute;s dans
1023     l'environnement avec leur nom en majuscules et pr&eacute;fix&eacute;
1024     par "MATCH_". Ceci permet
1025     de r&eacute;f&eacute;rencer des URLs dans des <a href="../expr.html">expressions</a>
1026     ou au sein de modules comme <module>mod_rewrite</module>. Pour
1027     &eacute;viter toute confusion, les r&eacute;f&eacute;rences arri&egrave;res num&eacute;rot&eacute;es (non
1028     nomm&eacute;es) sont ignor&eacute;es. Vous devez utiliser &agrave; la place des groupes
1029     nomm&eacute;s.</p>
1030
1031 <highlight language="config">
1032 &lt;DirectoryMatch "^/var/www/combined/(?&lt;sitename&gt;[^/]+)"&gt;
1033     Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
1034 &lt;/DirectoryMatch&gt;
1035 </highlight>    
1036 </usage>
1037 <seealso><directive type="section" module="core">Directory</directive>
1038 pour une description de la mani&egrave;re dont les expressions rationnelles
1039 sont trait&eacute;es en pr&eacute;sence d'autres sections <directive
1040 type="section">Directory</directive> sans expressions rationnelles</seealso>
1041 <seealso><a
1042 href="../sections.html">Comment fonctionnent les sections
1043 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
1044 explication &agrave; propos de la mani&egrave;re dont ces diff&eacute;rentes sections se
1045 combinent entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te</seealso>
1046 </directivesynopsis>
1047
1048 <directivesynopsis>
1049 <name>DocumentRoot</name>
1050 <description>Racine principale de l'arborescence des documents visible
1051 depuis Internet</description>
1052 <syntax>DocumentRoot <var>chemin r&eacute;pertoire</var></syntax>
1053 <default>DocumentRoot /usr/local/apache/htdocs</default>
1054 <contextlist><context>server config</context><context>virtual
1055 host</context>
1056 </contextlist>
1057
1058 <usage>
1059     <p>Cette directive permet de d&eacute;finir le r&eacute;pertoire &agrave; partir duquel
1060     <program>httpd</program> va servir les fichiers. S'il ne correspond
1061     pas &agrave; un <directive module="mod_alias">Alias</directive>, le chemin
1062     de l'URL sera ajout&eacute; par le serveur &agrave; la racine des documents afin
1063     de construire le chemin du document recherch&eacute;. Exemple :</p>
1064
1065     <highlight language="config">DocumentRoot "/usr/web"</highlight>
1066
1067     <p>un acc&egrave;s &agrave; <code>http://my.example.com/index.html</code> se
1068     r&eacute;f&egrave;re alors &agrave; <code>/usr/web/index.html</code>. Si <var>chemin
1069     r&eacute;pertoire</var> n'est pas un chemin absolu, il est consid&eacute;r&eacute; comme
1070     relatif au chemin d&eacute;fini par la directive <directive
1071     module="core">ServerRoot</directive>.</p>
1072
1073     <p>Le r&eacute;pertoire d&eacute;fini par la directive
1074     <directive>DocumentRoot</directive> ne doit pas comporter de slash
1075     final.</p>
1076 </usage>
1077 <seealso><a href="../urlmapping.html#documentroot">Mise en
1078 correspondance des URLs avec le syst&egrave;me de fichiers</a></seealso>
1079 </directivesynopsis>
1080
1081 <directivesynopsis type="section">
1082 <name>Else</name>
1083 <description>Contient des directives qui ne s'appliquent que si la
1084 condition correspondant &agrave; la section <directive type="section"
1085 module="core">If</directive> ou <directive type="section"
1086 module="core">ElseIf</directive> pr&eacute;c&eacute;dente n'est pas satisfaite par la
1087 requ&ecirc;te &agrave; l'ex&eacute;cution</description>
1088 <syntax>&lt;Else&gt; ... &lt;/Else&gt;</syntax>
1089 <contextlist><context>server config</context><context>virtual host</context>
1090 <context>directory</context><context>.htaccess</context>
1091 </contextlist>
1092 <override>All</override>
1093
1094 <usage>
1095     <p>La section <directive type="section">Else</directive> applique
1096     les directives qu'elle contient si et seulement si les conditions
1097     correspondant &agrave; la section <directive type="section">If</directive>
1098     ou <directive type="section">ElseIf</directive> imm&eacute;diatement
1099     sup&eacute;rieure et dans la m&ecirc;me port&eacute;e n'ont pas &eacute;t&eacute; satisfaites. Par
1100     exemple, dans :</p>
1101
1102     <highlight language="config">
1103 &lt;If "-z req('Host')"&gt;
1104   # ...
1105 &lt;/If&gt;
1106 &lt;Else&gt;
1107   # ...
1108 &lt;/Else&gt;
1109     </highlight>
1110
1111     <p>La condition de la section <directive
1112     type="section">If</directive> serait satisfaite pour les requ&ecirc;tes
1113     HTTP/1.0 sans en-t&ecirc;te <var>Host:</var>, alors que celle de la section
1114     <directive type="section">Else</directive> le serait pour les
1115     requ&ecirc;tes comportant un en-t&ecirc;te <var>Host:</var>.</p>
1116
1117 </usage>
1118 <seealso><directive type="section" module="core">If</directive></seealso>
1119 <seealso><directive type="section" module="core">ElseIf</directive></seealso>
1120 <seealso><a href="../sections.html">Fonctionnement des sections &lt;Directory&gt;, &lt;Location&gt;,
1121     &lt;Files&gt;</a> pour une explication de la mani&egrave;re dont ces
1122     diff&eacute;rentes section se combinent entre elles lorsqu'une requ&ecirc;te est
1123     re&ccedil;ue. Les directives <directive type="section">If</directive>,
1124     <directive type="section">ElseIf</directive>, et <directive
1125     type="section">Else</directive> s'appliquent en dernier.</seealso>
1126 </directivesynopsis>
1127
1128 <directivesynopsis type="section">
1129 <name>ElseIf</name>
1130 <description>Contient des directives qui ne s'appliquent que si la
1131 condition correspondante est satisfaite par une requ&ecirc;te &agrave; l'ex&eacute;cution,
1132 alors que la condition correspondant &agrave; la section <directive
1133 type="section" module="core">If</directive> ou <directive
1134 type="section">ElseIf</directive> pr&eacute;c&eacute;dente ne l'&eacute;tait pas.</description>
1135 <syntax>&lt;ElseIf <var>expression</var>&gt; ... &lt;/ElseIf&gt;</syntax>
1136 <contextlist><context>server config</context><context>virtual host</context>
1137 <context>directory</context><context>.htaccess</context>
1138 </contextlist>
1139 <override>All</override>
1140
1141 <usage>
1142     <p>La section <directive type="section">ElseIf</directive> applique
1143     les directives qu'elle contient si et seulement si d'une part la
1144     condition correspondante est satisfaite, et d'autre part la condition
1145     correspondant &agrave; la section <directive type="section">If</directive>
1146     ou <directive type="section">ElseIf</directive> de la m&ecirc;me port&eacute;e ne
1147     l'est pas. Par exemple, dans :</p>
1148
1149     <highlight language="config">
1150 &lt;If "-R '10.1.0.0/16'"&gt;
1151   #...
1152 &lt;/If&gt;
1153 &lt;ElseIf "-R '10.0.0.0/8'"&gt;
1154   #...
1155 &lt;/ElseIf&gt;
1156 &lt;Else&gt;
1157   #...
1158 &lt;/Else&gt;
1159     </highlight>
1160
1161     <p>La condition correspondant &agrave; la section <directive
1162     type="section">ElseIf</directive> est satisfaite si l'adresse
1163     distante de la requ&ecirc;te appartient au sous-r&eacute;seau 10.0.0.0/8, mais
1164     pas si elle appartient au sous-r&eacute;seau 10.1.0.0/16.</p>
1165
1166 </usage>
1167 <seealso><a href="../expr.html">Les expressions dans le serveur HTTP
1168 Apache</a>, pour une r&eacute;f&eacute;rence compl&egrave;te et d'autres exemples.</seealso>
1169 <seealso><directive type="section" module="core">If</directive></seealso>
1170 <seealso><directive type="section" module="core">Else</directive></seealso>
1171 <seealso><a href="../sections.html">Fonctionnement des sections &lt;Directory&gt;, &lt;Location&gt;,
1172     &lt;Files&gt;</a> pour une explication de la mani&egrave;re dont ces
1173     diff&eacute;rentes section se combinent entre elles lorsqu'une requ&ecirc;te est
1174     re&ccedil;ue. Les directives <directive type="section">If</directive>,
1175     <directive type="section">ElseIf</directive>, et <directive
1176     type="section">Else</directive> s'appliquent en dernier.</seealso>
1177 </directivesynopsis>
1178
1179 <directivesynopsis>
1180 <name>EnableMMAP</name>
1181 <description>Utilise la projection en m&eacute;moire (Memory-Mapping) pour
1182 lire les fichiers pendant qu'ils sont servis</description>
1183 <syntax>EnableMMAP On|Off</syntax>
1184 <default>EnableMMAP On</default>
1185 <contextlist><context>server config</context><context>virtual
1186 host</context>
1187 <context>directory</context><context>.htaccess</context>
1188 </contextlist>
1189 <override>FileInfo</override>
1190
1191 <usage>
1192     <p>Cette directive d&eacute;finit si <program>httpd</program> peut utiliser
1193     la projection en m&eacute;moire (Memory-Mapping) quand il doit lire le contenu
1194     d'un fichier pendant qu'il est servi. Par d&eacute;faut, lorsque le
1195     traitement d'une requ&ecirc;te requiert l'acc&egrave;s aux donn&eacute;es contenues dans
1196     un fichier -- par exemple, pour servir un fichier interpr&eacute;t&eacute; par le
1197     serveur &agrave; l'aide de <module>mod_include</module> -- Apache httpd projette
1198     le fichier en m&eacute;moire si le syst&egrave;me d'exploitation le permet.</p>
1199
1200     <p>Cette projection en m&eacute;moire induit parfois une am&eacute;lioration des
1201     performances. Sur certains syst&egrave;mes cependant, il est pr&eacute;f&eacute;rable de
1202     d&eacute;sactiver la projection en m&eacute;moire afin d'&eacute;viter certains probl&egrave;mes
1203     op&eacute;rationnels :</p>
1204
1205     <ul>
1206     <li>Sur certains syst&egrave;mes multi-processeurs, la projection en
1207     m&eacute;moire peut d&eacute;grader les performances du programme
1208     <program>httpd</program>.</li>
1209     <li>S'il fait l'objet d'une projection en m&eacute;moire par
1210     <program>httpd</program>, la suppression ou la troncature d'un
1211     fichier peut provoquer un crash de <program>httpd</program> avec une
1212     erreur de segmentation.</li>
1213     </ul>
1214
1215     <p>Pour les configurations de serveur sujettes &agrave; ce genre de
1216     probl&egrave;me, il est pr&eacute;f&eacute;rable de d&eacute;sactiver la projection en m&eacute;moire
1217     des fichiers servis en sp&eacute;cifiant :</p>
1218     
1219     <highlight language="config">EnableMMAP Off</highlight>
1220
1221     <p>Pour les montages NFS, cette fonctionnalit&eacute; peut &ecirc;tre
1222     explicitement d&eacute;sactiv&eacute;e pour les fichiers concern&eacute;s en sp&eacute;cifiant
1223     :</p>
1224
1225     <highlight language="config">
1226 &lt;Directory "/path-to-nfs-files"&gt;
1227   EnableMMAP Off
1228 &lt;/Directory&gt;
1229     </highlight>
1230 </usage>
1231 </directivesynopsis>
1232
1233 <directivesynopsis>
1234 <name>EnableSendfile</name>
1235 <description>Utilise le support sendfile du noyau pour servir les
1236 fichiers aux clients</description>
1237 <syntax>EnableSendfile On|Off</syntax>
1238 <default>EnableSendfile Off</default>
1239 <contextlist><context>server config</context><context>virtual
1240 host</context>
1241 <context>directory</context><context>.htaccess</context>
1242 </contextlist>
1243 <override>FileInfo</override>
1244 <compatibility>Par d&eacute;faut &agrave; Off depuis la version 2.3.9.</compatibility>
1245
1246 <usage>
1247     <p>Cette directive d&eacute;finit si le programme <program>httpd</program>
1248     peut utiliser le support sendfile du noyau pour transmettre le
1249     contenu des fichiers aux clients. Par d&eacute;faut, lorsque le traitement
1250     d'une requ&ecirc;te ne requiert pas l'acc&egrave;s aux donn&eacute;es contenues dans un
1251     fichier -- par exemple, pour la transmission d'un fichier statique
1252     -- Apache httpd utilise sendfile pour transmettre le contenu du fichier
1253     sans m&ecirc;me lire ce dernier, si le syst&egrave;me d'exploitation le
1254     permet.</p>
1255
1256     <p>Ce m&eacute;canisme sendfile &eacute;vite la s&eacute;paration des op&eacute;rations de
1257     lecture et d'envoi, ainsi que les r&eacute;servations de tampons. sur
1258     certains syst&egrave;mes cependant, ou sous certains syst&egrave;mes de fichiers,
1259     il est pr&eacute;f&eacute;rable de d&eacute;sactiver cette fonctionnalit&eacute; afin d'&eacute;viter
1260     certains probl&egrave;mes op&eacute;rationnels :</p>
1261
1262     <ul>
1263     <li>Certains syst&egrave;mes peuvent pr&eacute;senter un support sendfile
1264     d&eacute;fectueux que le syst&egrave;me de compilation n'a pas d&eacute;tect&eacute;, en
1265     particulier si les ex&eacute;cutables ont &eacute;t&eacute; compil&eacute;s sur une autre
1266     machine, puis copi&eacute;s sur la premi&egrave;re avec un support sendfile
1267     d&eacute;fectueux.</li>
1268     <li>Sous Linux, l'utilisation de sendfile induit des bogues lors de
1269     la r&eacute;cup&eacute;ration des paquets de v&eacute;rification TCP (TCP-checksum) avec
1270     certaines cartes r&eacute;seau lorsqu'on utilise IPv6.</li>
1271     <li>Sous Linux sur Itanium, <code>sendfile</code> peut s'av&eacute;rer incapable de
1272     traiter les fichiers de plus de 2 Go.</li>
1273     <li>Avec un montage r&eacute;seau de <directive
1274     module="core">DocumentRoot</directive> (par exemple NFS, SMB, CIFS,
1275     FUSE), le
1276     noyau peut s'av&eacute;rer incapable de servir un fichier de ce montage
1277     r&eacute;seau en passant par son propre cache.</li>
1278     </ul>
1279
1280     <p>Pour les configurations de serveur non sujettes &agrave; ce genre de
1281     probl&egrave;me, vous pouvez activer cette fonctionnalit&eacute; en
1282     sp&eacute;cifiant :</p>
1283
1284     <highlight language="config">EnableSendfile On</highlight>
1285
1286     <p>Pour les montages r&eacute;seau, cette fonctionnalit&eacute; peut &ecirc;tre
1287     explicitement d&eacute;sactiv&eacute;e pour les fichiers concern&eacute;s en sp&eacute;cifiant
1288     :</p>
1289
1290     <highlight language="config">
1291 &lt;Directory "/path-to-nfs-files"&gt;
1292   EnableSendfile Off
1293 &lt;/Directory&gt;
1294     </highlight>
1295     <p>Veuillez noter que la configuration de la directive
1296     <directive>EnableSendfile</directive> dans un contexte de r&eacute;pertoire
1297     ou de fichier .htaccess n'est pas support&eacute;e par
1298     <module>mod_cache_disk</module>. Le module ne prend en compte la
1299     d&eacute;finition de <directive>EnableSendfile</directive> que dans un
1300     contexte global.
1301     </p>
1302 </usage>
1303 </directivesynopsis>
1304
1305 <directivesynopsis>
1306 <name>Error</name>
1307 <description>Interrompt la lecture de la configuration avec un message
1308 d'erreur personnalis&eacute;</description>
1309 <syntax>Error <var>message</var></syntax>
1310 <contextlist><context>server config</context><context>virtual host</context>
1311 <context>directory</context><context>.htaccess</context>
1312 </contextlist>
1313 <compatibility>&agrave; partir de la version 2.3.9</compatibility>
1314
1315 <usage>
1316     <p>Si une erreur peut &ecirc;tre d&eacute;tect&eacute;e dans la configuration, souvent
1317     un module manquant, cette
1318     directive peut &ecirc;tre utilis&eacute;e pour g&eacute;n&eacute;rer un message d'erreur
1319     personnalis&eacute;, et interrompre la lecture de la configuration. </p>
1320
1321     <highlight language="config">
1322 # Exemple
1323 # v&eacute;rification du chargement de mod_include
1324 &lt;IfModule !include_module&gt;
1325   Error "mod_include is required by mod_foo.  Load it with LoadModule."
1326 &lt;/IfModule&gt;
1327
1328 # v&eacute;rification de la d&eacute;finition de SSL ou (exclusif) NOSSL
1329 &lt;IfDefine SSL&gt;
1330 &lt;IfDefine NOSSL&gt;
1331   Error "Both SSL and NOSSL are defined.  Define only one of them."
1332 &lt;/IfDefine&gt;
1333 &lt;/IfDefine&gt;
1334 &lt;IfDefine !SSL&gt;
1335 &lt;IfDefine !NOSSL&gt;
1336   Error "Either SSL or NOSSL must be defined."
1337 &lt;/IfDefine&gt;
1338 &lt;/IfDefine&gt;
1339     </highlight>
1340
1341 </usage>
1342 </directivesynopsis>
1343
1344 <directivesynopsis>
1345 <name>ErrorDocument</name>
1346 <description>Document que le serveur renvoie au client en cas
1347 d'erreur</description>
1348 <syntax>ErrorDocument <var>code erreur</var> <var>document</var></syntax>
1349 <contextlist><context>server config</context><context>virtual
1350 host</context>
1351 <context>directory</context><context>.htaccess</context>
1352 </contextlist>
1353 <override>FileInfo</override>
1354
1355 <usage>
1356     <p>Apache httpd peut traiter les probl&egrave;mes et les erreurs de quatre
1357     mani&egrave;res,</p>
1358
1359     <ol>
1360       <li>afficher un simple message d'erreur au contenu fixe</li>
1361
1362       <li>afficher un message personnalis&eacute;</li>
1363
1364       <li>rediriger en interne vers un <var>chemin d'URL</var> local pour traiter
1365       le probl&egrave;me ou l'erreur</li>
1366
1367       <li>rediriger vers une <var>URL</var> externe pour traiter
1368       le probl&egrave;me ou l'erreur</li>
1369     </ol>
1370
1371     <p>La premi&egrave;re option constitue le comportement par d&eacute;faut; pour
1372     choisir une des trois autres options, il faut configurer Apache &agrave;
1373     l'aide de la directive <directive>ErrorDocument</directive>, suivie
1374     du code de la r&eacute;ponse HTTP et d'une URL ou d'un message. Apache
1375     httpd fournit parfois des informations suppl&eacute;mentaires &agrave; propos du
1376     probl&egrave;me ou de l'erreur.</p>
1377
1378     <p>A partir de la version 2.4.13, cette directive peut utiliser la
1379     <a href="../expr.html">syntaxe des expressions</a> pour g&eacute;n&eacute;rer des
1380     cha&icirc;nes de caract&egrave;res et des URLs dynamiques.</p>
1381
1382     <p>Les URLs peuvent commencer par un slash (/) pour les chemins web
1383     locaux (relatifs au r&eacute;pertoire d&eacute;fini par la directive <directive
1384     module="core">DocumentRoot</directive>), ou se pr&eacute;senter sous la
1385     forme d'une URL compl&egrave;te que le client pourra r&eacute;soudre.
1386     Alternativement, un message &agrave; afficher par le navigateur pourra &ecirc;tre
1387     fourni. Notez que la d&eacute;cision &agrave; propos de la nature du param&egrave;tre, &agrave;
1388     savoir une URL, un chemin ou un message, est prise avant
1389     l'interpr&eacute;tation de toute expression. Exemples :</p>
1390
1391     <highlight language="config">
1392 ErrorDocument 500 http://foo.example.com/cgi-bin/tester
1393 ErrorDocument 404 /cgi-bin/bad_urls.pl
1394 ErrorDocument 401 /subscription_info.html
1395 ErrorDocument 403 "D&eacute;sol&eacute;, nous ne pouvons pas vous accorder l'acc&egrave;s aujourd'hui"
1396 ErrorDocument 403 Forbidden!
1397 ErrorDocument 403 /cgi-bin/forbidden.pl?referrer=%{escape:%{HTTP_REFERER}}
1398     </highlight>
1399
1400     <p>De plus, on peut sp&eacute;cifier la valeur sp&eacute;ciale <code>default</code>
1401     pour indiquer l'utilisation d'un simple message d'Apache httpd cod&eacute; en
1402     dur. Bien que non n&eacute;cessaire dans des circonstances normales, la
1403     sp&eacute;cification de la valeur <code>default</code> va permettre de
1404     r&eacute;tablir l'utilisation du simple message d'Apache httpd cod&eacute; en dur pour
1405     les configurations qui sans cela, h&eacute;riteraient d'une directive
1406     <directive>ErrorDocument</directive> existante.</p>
1407
1408     <highlight language="config">
1409 ErrorDocument 404 /cgi-bin/bad_urls.pl
1410
1411 &lt;Directory "/web/docs"&gt;
1412   ErrorDocument 404 default
1413 &lt;/Directory&gt;
1414     </highlight>
1415
1416     <p>Notez que lorsque vous sp&eacute;cifiez une directive
1417     <directive>ErrorDocument</directive> pointant vers une URL distante
1418     (c'est &agrave; dire tout ce qui commence par le pr&eacute;fixe http), le serveur
1419     HTTP Apache va
1420     envoyer une redirection au client afin de lui indiquer o&ugrave; trouver le
1421     document, m&ecirc;me dans le cas o&ugrave; ce document se trouve sur le serveur
1422     local. Ceci a de nombreuses cons&eacute;quences dont la plus importante
1423     r&eacute;side dans le fait que le client ne recevra pas le code d'erreur
1424     original, mais au contraire un code de statut de redirection. Ceci
1425     peut en retour semer la confusion chez les robots web et divers
1426     clients qui tentent de d&eacute;terminer la validit&eacute; d'une URL en examinant
1427     le code de statut. De plus, si vous utilisez une URL distante avec
1428     <code>ErrorDocument 401</code>, le client ne saura pas qu'il doit
1429     demander un mot de passe &agrave; l'utilisateur car il ne recevra pas le
1430     code de statut 401. C'est pourquoi, <strong>si vous utilisez une
1431     directive <code>ErrorDocument 401</code>, elle devra faire r&eacute;f&eacute;rence
1432     &agrave; un document par le biais d'un chemin local.</strong></p>
1433
1434     <p>Microsoft Internet Explorer (MSIE) ignore par d&eacute;faut les messages
1435     d'erreur g&eacute;n&eacute;r&eacute;s par le serveur lorsqu'ils sont trop courts et
1436     remplacent ses propres messages d'erreur "amicaux". Le seuil de
1437     taille varie en fonction du type d'erreur, mais en g&eacute;n&eacute;ral, si la
1438     taille de votre message d'erreur est sup&eacute;rieure &agrave; 512 octets, il y a
1439     peu de chances pour que MSIE l'occulte, et il sera affich&eacute; par ce
1440     dernier. Vous trouverez d'avantage d'informations dans l'article de
1441     la base de connaissances Microsoft <a
1442     href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807"
1443     >Q294807</a>.</p>
1444
1445     <p>Bien que la plupart des messages d'erreur internes originaux
1446     puissent &ecirc;tre remplac&eacute;s, ceux-ci sont cependant conserv&eacute;s dans
1447     certaines circonstances sans tenir compte de la d&eacute;finition de la
1448     directive <directive module="core">ErrorDocument</directive>. En
1449     particulier, en cas de d&eacute;tection d'une requ&ecirc;te mal form&eacute;e, le
1450     processus de traitement normal des requ&ecirc;tes est imm&eacute;diatement
1451     interrompu, et un message d'erreur interne est renvoy&eacute;, ceci afin de
1452     se pr&eacute;munir contre les probl&egrave;mes de s&eacute;curit&eacute; li&eacute;s aux requ&ecirc;tes mal
1453     form&eacute;es.</p>
1454
1455     <p>Si vous utilisez mod_proxy, il est en g&eacute;n&eacute;ral pr&eacute;f&eacute;rable
1456     d'activer <directive
1457     module="mod_proxy">ProxyErrorOverride</directive> afin d'&ecirc;tre en
1458     mesure de produire des messages d'erreur personnalis&eacute;s pour le
1459     compte de votre serveur d'origine. Si vous n'activez pas
1460     ProxyErrorOverride, Apache httpd ne g&eacute;n&eacute;rera pas de messages d'erreur
1461     personnalis&eacute;s pour le contenu mandat&eacute;.</p>
1462
1463 </usage>
1464
1465 <seealso><a href="../custom-error.html">documentation sur la
1466 personnalisation des r&eacute;ponses</a></seealso>
1467 </directivesynopsis>
1468
1469 <directivesynopsis>
1470 <name>ErrorLog</name>
1471 <description>D&eacute;finition du chemin du journal des erreurs</description>
1472 <syntax> ErrorLog <var>chemin fichier</var>|syslog[:<var>facility</var>]</syntax>
1473 <default>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</default>
1474 <contextlist><context>server config</context><context>virtual
1475 host</context>
1476 </contextlist>
1477
1478 <usage>
1479     <p>La directive <directive>ErrorLog</directive> permet de d&eacute;finir le
1480     nom du fichier dans lequel le serveur va journaliser toutes les
1481     erreurs qu'il rencontre. Si le <var>chemin fichier</var> n'est pas
1482     absolu, il est consid&eacute;r&eacute; comme relatif au chemin d&eacute;fini par la
1483     directive <directive module="core">ServerRoot</directive>.</p>
1484
1485     <highlight language="config">ErrorLog "/var/log/httpd/error_log"</highlight>
1486
1487     <p>Si le <var>chemin fichier</var> commence par une barre verticale
1488     "<code>(|)</code>", il est consid&eacute;r&eacute; comme une commande &agrave; lancer pour traiter la
1489     journalisation de l'erreur.</p>
1490
1491     <highlight language="config">ErrorLog "|/usr/local/bin/httpd_errors"</highlight>
1492
1493     <p>Voir les notes &agrave; propos des <a href="../logs.html#piped">journaux
1494     redirig&eacute;s</a> pour plus d'informations.</p>
1495
1496     <p>L'utilisation de <code>syslog</code> &agrave; la place d'un nom de
1497     fichier active la journalisation via syslogd(8) si le syst&egrave;me le
1498     supporte et si <module>mod_syslog</module> a &eacute;t&eacute; charg&eacute;. Le
1499     dispositif syslog par d&eacute;faut est <code>local7</code>,
1500     mais vous pouvez le modifier &agrave; l'aide de la syntaxe
1501     <code>syslog:<var>facility</var></code>, o&ugrave; <var>facility</var> peut
1502     &ecirc;tre remplac&eacute; par un des noms habituellement document&eacute;s dans la page
1503     de man syslog(1). Le dispositif syslog <code>local7</code> est
1504     global, et si il est modifi&eacute; dans un serveur virtuel, le dispositif
1505     final sp&eacute;cifi&eacute; affecte l'ensemble du serveur</p>
1506
1507     <highlight language="config">ErrorLog syslog:user</highlight>
1508
1509     <p>Des modules additionnels peuvent impl&eacute;menter leur propre
1510     fournisseur ErrorLog. La syntaxe est similaire &agrave; l'exemple
1511     <code>syslog</code> ci-dessus.</p>
1512
1513     <p>SECURITE : Voir le document <a
1514     href="../misc/security_tips.html#serverroot">conseils &agrave; propos de
1515     s&eacute;curit&eacute;</a> pour des d&eacute;tails sur les raisons pour lesquelles votre
1516     s&eacute;curit&eacute; peut &ecirc;tre compromise si le r&eacute;pertoire contenant les
1517     fichiers journaux pr&eacute;sente des droits en &eacute;criture pour tout autre
1518     utilisateur que celui sous lequel le serveur est d&eacute;marr&eacute;.</p>
1519     <note type="warning"><title>Note</title>
1520       <p>Lors de la sp&eacute;cification d'un chemin de fichier sur les
1521       plates-formes non-Unix, on doit veiller &agrave; n'utiliser que des
1522       slashes (/), m&ecirc;me si la plate-forme autorise l'utilisation des
1523       anti-slashes (\). Et d'une mani&egrave;re g&eacute;n&eacute;rale, il est recommand&eacute; de
1524       n'utiliser que des slashes (/) dans les fichiers de
1525       configuration.</p>
1526     </note>
1527 </usage>
1528 <seealso><directive module="core">LogLevel</directive></seealso>
1529 <seealso><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></seealso>
1530 </directivesynopsis>
1531
1532 <directivesynopsis>
1533 <name>ErrorLogFormat</name>
1534 <description>Sp&eacute;cification du format des entr&eacute;es du journal des erreurs</description>
1535 <syntax> ErrorLogFormat [connection|request] <var>format</var></syntax>
1536 <contextlist><context>server config</context><context>virtual host</context>
1537 </contextlist>
1538
1539 <usage>
1540     <p>La directive <directive>ErrorLogFormat</directive> permet de
1541     sp&eacute;cifier quelles informations suppl&eacute;mentaires vont &ecirc;tre enregistr&eacute;es
1542     dans le journal des erreurs en plus du message habituel.</p>
1543
1544     <highlight language="config">
1545 # Exemple simple
1546 ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
1547     </highlight>
1548
1549     <p>La sp&eacute;cification de <code>connection</code> ou
1550     <code>request</code> comme premier param&egrave;tre permet de d&eacute;finir des
1551     formats suppl&eacute;mentaires, ce qui a pour effet de journaliser des
1552     informations additionnelles lorsque le premier message est
1553     enregistr&eacute; respectivement pour une connexion ou une requ&ecirc;te
1554     sp&eacute;cifique. Ces informations additionnelles ne sont enregistr&eacute;es
1555     qu'une seule fois par connexion/requ&ecirc;te. Si le traitement d'une
1556     connexion ou d'une requ&ecirc;te ne g&eacute;n&egrave;re aucun message dans le journal,
1557     alors aucune information additionnelle n'est enregistr&eacute;e.</p>
1558
1559     <p>Il peut arriver que certains items de la cha&icirc;ne de format ne
1560     produisent aucune sortie. Par exemple, l'en-t&ecirc;te Referer n'est
1561     pr&eacute;sent que si le message du journal est associ&eacute; &agrave; une requ&ecirc;te et s'il
1562     est g&eacute;n&eacute;r&eacute; &agrave; un moment o&ugrave; l'en-t&ecirc;te Referer a d&eacute;j&agrave; &eacute;t&eacute; lu par le
1563     client. Si aucune sortie n'est g&eacute;n&eacute;r&eacute;e, le comportement par d&eacute;faut
1564     consiste &agrave; supprimer tout ce qui se trouve entre l'espace pr&eacute;c&eacute;dent
1565     et le suivant. Ceci implique que la ligne de journalisation est
1566     divis&eacute;e en champs ne contenant pas d'espace s&eacute;par&eacute;s par des espaces.
1567     Si un item de la cha&icirc;ne de format ne g&eacute;n&egrave;re aucune sortie,
1568     l'ensemble du champ est omis. Par exemple, si l'adresse distante
1569     <code>%a</code> du format <code>[%t] [%l] [%a] %M&nbsp;</code> n'est
1570     pas disponible, les crochets qui l'entourent ne seront eux-m&ecirc;mes pas
1571     enregistr&eacute;s. Il est possible d'&eacute;chapper les espaces par un anti-slash
1572     afin qu'ils ne soient pas consid&eacute;r&eacute;s comme s&eacute;parateurs de champs.
1573     La combinaison '%&nbsp;' (pourcentage espace) est un d&eacute;limiteur de
1574     champ de taille nulle qui ne g&eacute;n&egrave;re aucune sortie.</p>
1575
1576     <p>Ce comportement peut &ecirc;tre chang&eacute; en ajoutant des modificateurs &agrave;
1577     l'item de la cha&icirc;ne de format. Le modificateur <code>-</code>
1578     (moins) provoque l'enregistrement d'un signe moins si l'item
1579     consid&eacute;r&eacute; ne g&eacute;n&egrave;re aucune sortie. Pour les formats &agrave; enregistrement
1580     unique par connexion/requ&ecirc;te, il est aussi possible d'utiliser le
1581     modificateur <code>+</code> (plus). Si un item ne g&eacute;n&eacute;rant aucune
1582     sortie poss&egrave;de le modificateur plus, la ligne dans son ensemble est
1583     omise.</p>
1584
1585     <p>Un modificateur de type entier permet d'assigner un niveau de
1586     s&eacute;v&eacute;rit&eacute; &agrave; un item de format. L'item consid&eacute;r&eacute; ne
1587     sera journalis&eacute; que si la s&eacute;v&eacute;rit&eacute; du message n'est pas
1588     plus haute que le niveau de s&eacute;v&eacute;rit&eacute; sp&eacute;cifi&eacute;. Les
1589     valeurs possibles vont de 1 (alert) &agrave; 15 (trace8), en passant par 4
1590     (warn) ou 7 (debug).</p>
1591
1592     <p>Par exemple, voici ce qui arriverait si vous ajoutiez des
1593     modificateurs &agrave; l'item <code>%{Referer}i</code> qui enregistre le
1594     contenu de l'en-t&ecirc;te <code>Referer</code>.</p>
1595
1596     <table border="1" style="zebra">
1597     <columnspec><column width=".3"/><column width=".7"/></columnspec>
1598
1599     <tr><th>Item modifi&eacute;</th><th>Signification</th></tr>
1600
1601     <tr>
1602     <td><code>%-{Referer}i</code></td>
1603     <td>Enregistre le caract&egrave;re <code>-</code> si l'en-t&ecirc;te
1604     <code>Referer</code> n'est pas d&eacute;fini.</td>
1605     </tr>
1606
1607     <tr>
1608     <td><code>%+{Referer}i</code></td>
1609     <td>N'enregistre rien si l'en-t&ecirc;te
1610     <code>Referer</code> n'est pas d&eacute;fini.</td>
1611     </tr>
1612
1613     <tr>
1614     <td><code>%4{Referer}i</code></td>
1615     <td>N'enregistre le contenu de l'en-t&ecirc;te <code>Referer</code> que si
1616     la s&eacute;v&eacute;rit&eacute; du message de journalisation est sup&eacute;rieure &agrave; 4.</td>
1617     </tr>
1618
1619     </table>
1620
1621     <p>Certains items de format acceptent des param&egrave;tres suppl&eacute;mentaires
1622     entre accolades.</p>
1623
1624     <table border="1" style="zebra">
1625     <columnspec><column width=".2"/><column width=".8"/></columnspec>
1626
1627     <tr><th>Cha&icirc;ne&nbsp;de&nbsp;format</th> <th>Description</th></tr>
1628
1629     <tr><td><code>%%</code></td>
1630         <td>Le signe pourcentage</td></tr>
1631
1632     <tr><td><code>%a</code></td>
1633         <td>Adresse IP et port clients</td></tr>
1634
1635     <tr><td><code>%{c}a</code></td>
1636         <td>Port et adresse IP sous-jacents du correspondant pour la
1637         connexion (voir le module
1638         <module>mod_remoteip</module>)</td></tr>
1639
1640     <tr><td><code>%A</code></td>
1641         <td>Adresse IP et port locaux</td></tr>
1642
1643     <tr><td><code>%{<em>name</em>}e</code></td>
1644         <td>Variable d'environnement de requ&ecirc;te <em>name</em></td></tr>
1645
1646     <tr><td><code>%E</code></td>
1647         <td>Etat d'erreur APR/OS et cha&icirc;ne</td></tr>
1648
1649     <tr><td><code>%F</code></td>
1650         <td>Nom du fichier source et num&eacute;ro de ligne de l'appel du
1651         journal</td></tr>
1652
1653     <tr><td><code>%{<em>name</em>}i</code></td>
1654         <td>En-t&ecirc;te de requ&ecirc;te <em>name</em></td></tr>
1655
1656     <tr><td><code>%k</code></td>
1657         <td>Nombre de requ&ecirc;tes persistantes pour cette connexion</td></tr>
1658
1659     <tr><td><code>%l</code></td>
1660         <td>S&eacute;v&eacute;rit&eacute; du message</td></tr>
1661
1662     <tr><td><code>%L</code></td>
1663         <td>Identifiant journal de la requ&ecirc;te</td></tr>
1664
1665     <tr><td><code>%{c}L</code></td>
1666         <td>Identifiant journal de la connexion</td></tr>
1667
1668     <tr><td><code>%{C}L</code></td>
1669         <td>Identifiant journal de la connexion si utilis&eacute; dans la
1670         port&eacute;e de la connexion, vide sinon</td></tr>
1671
1672     <tr><td><code>%m</code></td>
1673         <td>Nom du module qui effectue la journalisation du message</td></tr>
1674
1675     <tr><td><code>%M</code></td>
1676         <td>Le message effectif</td></tr>
1677
1678     <tr><td><code>%{<em>name</em>}n</code></td>
1679         <td>Note de requ&ecirc;te <em>name</em></td></tr>
1680
1681     <tr><td><code>%P</code></td>
1682         <td>Identifiant du processus courant</td></tr>
1683
1684     <tr><td><code>%T</code></td>
1685         <td>Identifiant du thread courant</td></tr>
1686
1687     <tr><td><code>%{g}T</code></td>
1688         <td>Identifiant unique de thread syst&egrave;me du thread courant
1689         (l'identifiant affich&eacute; par la commande <code>top</code> par
1690         exemple ; seulement sous Linux pour l'instant)</td></tr>
1691
1692     <tr><td><code>%t</code></td>
1693         <td>L'heure courante</td></tr>
1694
1695     <tr><td><code>%{u}t</code></td>
1696         <td>L'heure courante avec les microsecondes</td></tr>
1697
1698     <tr><td><code>%{cu}t</code></td>
1699         <td>L'heure courante au format compact ISO 8601, avec les
1700         microsecondes</td></tr>
1701
1702     <tr><td><code>%v</code></td>
1703         <td>Le nom de serveur canonique <directive
1704         module="core">ServerName</directive> du serveur courant.</td></tr>
1705
1706     <tr><td><code>%V</code></td>
1707         <td>Le nom de serveur du serveur qui sert la requ&ecirc;te en accord
1708         avec la d&eacute;finition de la directive <directive module="core"
1709         >UseCanonicalName</directive>.</td></tr>
1710
1711     <tr><td><code>\&nbsp;</code> (anti-slash espace)</td>
1712         <td>Espace non d&eacute;limiteur</td></tr>
1713
1714     <tr><td><code>%&nbsp;</code> (pourcentage espace)</td>
1715         <td>D&eacute;limiteur de champ (aucune sortie)</td></tr>
1716     </table>
1717
1718     <p>L'item de format identifiant journal <code>%L</code> g&eacute;n&egrave;re un
1719     identifiant unique pour une connexion ou une requ&ecirc;te. Il peut servir
1720     &agrave; d&eacute;terminer quelles lignes correspondent &agrave; la m&ecirc;me connexion ou
1721     requ&ecirc;te ou quelle requ&ecirc;te est associ&eacute;e &agrave; tel connexion. Un item de
1722     format <code>%L</code> est aussi disponible dans le module
1723     <module>mod_log_config</module>, mais il permet dans ce contexte de
1724     corr&eacute;ler les entr&eacute;es du journal des acc&egrave;s avec celles du journal des
1725     erreurs. Si le module <module>mod_unique_id</module> est charg&eacute;,
1726     c'est son identifiant unique qui sera utilis&eacute; comme identifiant de
1727     journal pour les requ&ecirc;tes.</p>
1728
1729     <highlight language="config">
1730 # Exemple (format par d&eacute;faut pour les MPMs thread&eacute;s)
1731 ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M%&nbsp;,\&nbsp;referer\&nbsp;%{Referer}i"
1732     </highlight>
1733
1734     <p>Cet exemple renverrait un message d'erreur du style :</p>
1735
1736     <example>
1737     [Thu May 12 08:28:57.652118 2011] [core:error] [pid 8777:tid 4326490112] [client ::1:58619] File does not exist: /usr/local/apache2/htdocs/favicon.ico
1738     </example>
1739
1740     <p>Notez que, comme indiqu&eacute; plus haut, certains champs sont
1741     totalement supprim&eacute;s s'ils n'ont pas &eacute;t&eacute; d&eacute;finis.</p>
1742
1743     <highlight language="config">
1744 # Exemple (similaire au format 2.2.x)
1745 ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M%&nbsp;,\&nbsp;referer\&nbsp;%{Referer}i"
1746     </highlight>
1747
1748     <highlight language="config">
1749 # Exemple avanc&eacute; avec identifiants journal de requ&ecirc;te/connexion
1750 ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
1751 ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
1752 ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
1753 ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
1754 ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"
1755     </highlight>
1756
1757 </usage>
1758 <seealso><directive module="core">ErrorLog</directive></seealso>
1759 <seealso><directive module="core">LogLevel</directive></seealso>
1760 <seealso><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></seealso>
1761 </directivesynopsis>
1762
1763 <directivesynopsis>
1764 <name>ExtendedStatus</name>
1765 <description>Extrait des informations d'&eacute;tat &eacute;tendues pour chaque
1766 requ&ecirc;te</description>
1767 <syntax>ExtendedStatus On|Off</syntax>
1768 <default>ExtendedStatus Off</default>
1769 <contextlist><context>server config</context></contextlist>
1770
1771 <usage>
1772
1773         <p>Cette option permet d'extraire des donn&eacute;es suppl&eacute;mentaires
1774         concernant la requ&ecirc;te en cours de traitement pour un processus
1775         donn&eacute;, ainsi qu'un r&eacute;sum&eacute; d'utilisation ; vous pouvez acc&eacute;der &agrave;
1776         ces variables pendant l'ex&eacute;cution en configurant
1777         <module>mod_status</module>. Notez que d'autres modules sont
1778         susceptibles de s'appuyer sur ce tableau de bord.</p>
1779
1780     <p>Cette directive s'applique au serveur dans son ensemble, et ne
1781     peut pas &ecirc;tre activ&eacute;e/d&eacute;sactiv&eacute;e pour un serveur virtuel
1782     particulier. Notez que l'extraction des informations d'&eacute;tat &eacute;tendues
1783     peut ralentir le serveur. Notez aussi que cette d&eacute;finition ne peut
1784     pas &ecirc;tre modifi&eacute;e au cours d'un red&eacute;marrage graceful.</p>
1785
1786     <note>
1787     <p>Notez que le chargement de <module>mod_status</module> d&eacute;finit
1788     automatiquement ExtendedStatus &agrave; On, et que d'autres modules tiers
1789     sont susceptibles d'en faire de m&ecirc;me. De tels modules ont besoin
1790     d'informations d&eacute;taill&eacute;es &agrave; propos de l'&eacute;tat de tous les processus.
1791     Depuis la version 2.3.6, <module>mod_status</module> a d&eacute;finit la
1792     valeur par d&eacute;faut &agrave; On, alors qu'elle &eacute;tait &agrave; Off dans les versions
1793     ant&eacute;rieures.</p>
1794     </note>
1795
1796 </usage>
1797
1798 </directivesynopsis>
1799
1800 <directivesynopsis>
1801 <name>FileETag</name>
1802 <description>Caract&eacute;ristiques de fichier utilis&eacute;es lors de la g&eacute;n&eacute;ration
1803 de l'en-t&ecirc;te de r&eacute;ponse HTTP ETag pour les fichiers statiques</description>
1804 <syntax>FileETag <var>composant</var> ...</syntax>
1805 <default>FileETag MTime Size</default>
1806 <contextlist><context>server config</context><context>virtual
1807 host</context>
1808 <context>directory</context><context>.htaccess</context>
1809 </contextlist>
1810 <override>FileInfo</override>
1811 <compatibility>La valeur par d&eacute;faut &eacute;tait "INode&nbsp;MTime&nbsp;Size"
1812 dans les versions 2.3.14 et ant&eacute;rieures.</compatibility>
1813
1814 <usage>
1815     <p>
1816     La directive <directive>FileETag</directive> d&eacute;finit les
1817     caract&eacute;ristiques de fichier utilis&eacute;es lors de la g&eacute;n&eacute;ration de
1818     l'en-t&ecirc;te de r&eacute;ponse HTTP <code>ETag</code> (entity tag) quand le
1819     document est contenu dans un fichier statique(la valeur de
1820     <code>ETag</code>
1821     est utilis&eacute;e dans le cadre de la gestion du cache pour pr&eacute;server la
1822     bande passante r&eacute;seau). La directive
1823     <directive>FileETag</directive> vous permet maintenant de choisir
1824     quelles caract&eacute;ristiques du fichier vont &ecirc;tre utilis&eacute;es, le cas
1825     &eacute;ch&eacute;ant. Les mots-cl&eacute;s reconnus sont :
1826     </p>
1827
1828     <dl>
1829      <dt><strong>INode</strong></dt>
1830      <dd>Le num&eacute;ro d'i-node du fichier sera inclus dans le processus de
1831      g&eacute;n&eacute;ration</dd>
1832      <dt><strong>MTime</strong></dt>
1833      <dd>La date et l'heure auxquelles le fichier a &eacute;t&eacute; modifi&eacute; la
1834      derni&egrave;re fois seront incluses</dd>
1835      <dt><strong>Size</strong></dt>
1836      <dd>La taille du fichier en octets sera incluse</dd>
1837      <dt><strong>All</strong></dt>
1838      <dd>Tous les champs disponibles seront utilis&eacute;s. Cette d&eacute;finition
1839      est &eacute;quivalente &agrave; : 
1840      <highlight language="config">FileETag INode MTime Size</highlight></dd>
1841      <dt><strong>None</strong></dt>
1842      <dd>Si le document se compose d'un fichier, aucun champ
1843      <code>ETag</code> ne sera inclus dans la r&eacute;ponse</dd>
1844     </dl>
1845
1846     <p>Les mots-cl&eacute;s <code>INode</code>, <code>MTime</code>, et
1847     <code>Size</code> peuvent &ecirc;tre pr&eacute;fix&eacute;s par <code>+</code> ou
1848     <code>-</code>, ce qui permet de modifier les valeurs par d&eacute;faut
1849     h&eacute;rit&eacute;es d'un niveau de configuration plus g&eacute;n&eacute;ral. Tout mot-cl&eacute;
1850     apparaissant sans aucun pr&eacute;fixe annule enti&egrave;rement et imm&eacute;diatement
1851     les configurations h&eacute;rit&eacute;es.</p>
1852
1853     <p>Si la configuration d'un r&eacute;pertoire contient
1854     <code>FileETag&nbsp;INode&nbsp;MTime&nbsp;Size</code>, et si un de
1855     ses sous-r&eacute;pertoires contient <code>FileETag&nbsp;-INode</code>, la
1856     configuration de ce sous-r&eacute;pertoire (qui sera propag&eacute;e vers tout
1857     sous-r&eacute;pertoire qui ne la supplante pas), sera &eacute;quivalente &agrave;
1858     <code>FileETag&nbsp;MTime&nbsp;Size</code>.</p>
1859     <note type="warning"><title>Avertissement</title>
1860     Ne modifiez pas les valeurs par d&eacute;faut pour les r&eacute;pertoires ou
1861     localisations o&ugrave; WebDAV est activ&eacute; et qui utilisent
1862     <module>mod_dav_fs</module> comme fournisseur de stockage.
1863     <module>mod_dav_fs</module> utilise
1864     <code>MTime&nbsp;Size</code> comme format fixe pour les
1865     comparaisons de champs <code>ETag</code> dans les requ&ecirc;tes
1866     conditionnelles. Ces requ&ecirc;tes conditionnelles &eacute;choueront si le
1867     format <code>ETag</code> est modifi&eacute; via la directive
1868     <directive>FileETag</directive>.
1869     </note>
1870     <note><title>Inclusions c&ocirc;t&eacute; serveur</title>
1871     Aucun champ ETag n'est g&eacute;n&eacute;r&eacute; pour les r&eacute;ponses interpr&eacute;t&eacute;es par
1872     <module>mod_include</module>, car l'entit&eacute; de la r&eacute;ponse peut
1873     changer sans modification de l'INode, du MTime, ou de la taille du
1874     fichier statique contenant les directives SSI.
1875     </note>
1876
1877
1878 </usage>
1879 </directivesynopsis>
1880
1881 <directivesynopsis type="section">
1882 <name>Files</name>
1883 <description>Contient des directives qui s'appliquent aux fichiers
1884 pr&eacute;cis&eacute;s</description>
1885 <syntax>&lt;Files <var>nom fichier</var>&gt; ... &lt;/Files&gt;</syntax>
1886 <contextlist><context>server config</context><context>virtual
1887 host</context>
1888 <context>directory</context><context>.htaccess</context>
1889 </contextlist>
1890 <override>All</override>
1891
1892 <usage>
1893     <p>La directive <directive type="section">Files</directive> limite
1894     la port&eacute;e des directives qu'elle contient aux fichiers pr&eacute;cis&eacute;s.
1895     Elle est comparable aux directives <directive module="core"
1896     type="section">Directory</directive> et <directive module="core"
1897     type="section">Location</directive>. Elle doit se terminer par une
1898     balise <code>&lt;/Files&gt;</code>. Les directives contenues dans
1899     cette section s'appliqueront &agrave; tout objet dont le nom de base (la
1900     derni&egrave;re partie du nom de fichier) correspond au fichier sp&eacute;cifi&eacute;.
1901     Les sections <directive type="section">Files</directive> sont
1902     trait&eacute;es selon l'ordre dans lequel elles apparaissent dans le
1903     fichier de configuration, apr&egrave;s les sections <directive module="core"
1904     type="section">Directory</directive> et la lecture des fichiers
1905     <code>.htaccess</code>, mais avant les sections <directive
1906     type="section" module="core">Location</directive>. Notez que les
1907     sections <directive type="section">Files</directive> peuvent &ecirc;tre
1908     imbriqu&eacute;es dans les sections <directive type="section"
1909     module="core">Directory</directive> afin de restreindre la portion
1910     du syst&egrave;me de fichiers &agrave; laquelle ces derni&egrave;res vont
1911     s'appliquer.</p>
1912
1913     <p>L'argument <var>filename</var> peut contenir un nom de fichier
1914     ou une cha&icirc;ne de caract&egrave;res avec caract&egrave;res g&eacute;n&eacute;riques, o&ugrave;
1915     <code>?</code> remplace un caract&egrave;re, et <code>*</code> toute cha&icirc;ne
1916     de caract&egrave;res.</p>
1917     <highlight language="config">
1918 &lt;Files "cat.html"&gt;
1919     # Ins&eacute;rer ici des directives qui s'appliquent au fichier cat.html
1920 &lt;/Files&gt;
1921
1922 &lt;Files "?at.*"&gt;
1923     # Les directives ins&eacute;r&eacute;es ici s'appliqueront aux fichiers
1924     # cat.html, bat.html, hat.php, et ainsi de suite.
1925 &lt;/Files&gt;
1926 </highlight>
1927     
1928     <p>On peut aussi utiliser les <glossary
1929     ref="regex">Expressions rationnelles</glossary> en ajoutant la
1930     caract&egrave;re <code>~</code>. Par exemple :</p>
1931
1932     <highlight language="config">
1933 &lt;Files ~ "\.(gif|jpe?g|png)$"&gt;
1934     #...
1935 &lt;/Files&gt;
1936 </highlight>
1937
1938     <p>correspondrait &agrave; la plupart des formats graphiques de l'Internet.
1939     Il est cependant pr&eacute;f&eacute;rable d'utiliser la directive <directive
1940     module="core" type="section">FilesMatch</directive>.</p>
1941
1942     <p>Notez qu'&agrave; la diff&eacute;rence des sections <directive type="section"
1943     module="core">Directory</directive> et <directive type="section"
1944     module="core">Location</directive>, les sections <directive
1945     type="section">Files</directive> peuvent &ecirc;tre utilis&eacute;es dans les
1946     fichiers <code>.htaccess</code>. Ceci permet aux utilisateurs de
1947     contr&ocirc;ler l'acc&egrave;s &agrave; leurs propres ressources, fichier par
1948     fichier.</p>
1949
1950 </usage>
1951 <seealso><a href="../sections.html">Comment fonctionnent les sections
1952 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
1953 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
1954 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te</seealso>
1955 </directivesynopsis>
1956
1957 <directivesynopsis type="section">
1958 <name>FilesMatch</name>
1959 <description>Contient des directives qui s'appliquent &agrave; des fichiers
1960 sp&eacute;cifi&eacute;s sous la forme d'expressions rationnelles</description>
1961 <syntax>&lt;FilesMatch <var>expression rationnelle</var>&gt; ...
1962 &lt;/FilesMatch&gt;</syntax>
1963 <contextlist><context>server config</context><context>virtual
1964 host</context>
1965 <context>directory</context><context>.htaccess</context>
1966 </contextlist>
1967 <override>All</override>
1968
1969 <usage>
1970     <p>La section <directive type="section">FilesMatch</directive>
1971     limite la port&eacute;e des directives qu'elle contient aux fichiers
1972     sp&eacute;cifi&eacute;s, tout comme le ferait une section <directive module="core"
1973     type="section">Files</directive>. Mais elle accepte aussi les
1974     <glossary ref="regex">expressions rationnelles</glossary>. Par
1975     exemple :</p>
1976
1977     <highlight language="config">
1978 &lt;FilesMatch ".+\.(gif|jpe?g|png)$"&gt;
1979     # ...
1980 &lt;/FilesMatch&gt;
1981 </highlight>
1982
1983     <p>correspondrait &agrave; la plupart des formats graphiques de
1984     l'Internet.</p>
1985
1986     <note>Les caract&egrave;res <code>.+</code> au d&eacute;but de l'expression
1987     rationnelle permettent de s'assurer que les fichiers de nom
1988     <code>.png</code>, ou <code>.gif</code>, par exemple, ne seront pas
1989     pris en compte.</note>
1990
1991     <p>A partir de la version 2.4.8, les groupes nomm&eacute;s et les
1992     r&eacute;f&eacute;rences arri&egrave;res sont extraits et enregistr&eacute;s dans
1993     l'environnement avec leur nom en majuscules et pr&eacute;fix&eacute;
1994     par "MATCH_". Ceci permet
1995     de r&eacute;f&eacute;rencer des URLs dans des <a href="../expr.html">expressions</a>
1996     ou au sein de modules comme <module>mod_rewrite</module>. Pour
1997     &eacute;viter toute confusion, les r&eacute;f&eacute;rences arri&egrave;res num&eacute;rot&eacute;es (non
1998     nomm&eacute;es) sont ignor&eacute;es. Vous devez utiliser &agrave; la place des groupes
1999     nomm&eacute;s.</p>
2000
2001 <highlight language="config">
2002 &lt;FilesMatch "^(?&lt;sitename&gt;[^/]+)"&gt;
2003     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
2004 &lt;/FilesMatch&gt;
2005 </highlight>    
2006 </usage>
2007
2008 <seealso><a href="../sections.html">Comment fonctionnent les sections
2009 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
2010 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
2011 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te</seealso>
2012 </directivesynopsis>
2013
2014 <directivesynopsis>
2015 <name>ForceType</name>
2016 <description>Force le type de m&eacute;dium sp&eacute;cifi&eacute; dans le champ d'en-t&ecirc;te
2017 HTTP Content-Type pour les fichiers correspondants</description>
2018 <syntax>ForceType <var>type m&eacute;dium</var>|None</syntax>
2019 <contextlist><context>directory</context><context>.htaccess</context>
2020 </contextlist>
2021 <override>FileInfo</override>
2022
2023 <usage>
2024     <p>Lorsqu'elle est plac&eacute;e dans un fichier <code>.htaccess</code> ou
2025     une section <directive type="section"
2026     module="core">Directory</directive>, <directive type="section"
2027     module="core">Location</directive>, ou <directive type="section"
2028     module="core">Files</directive>, cette directive force
2029     l'identification du type MIME des fichiers sp&eacute;cifi&eacute;s &agrave; la valeur de
2030     l'argument <var>type m&eacute;dium</var>. Par exemple, si vous poss&eacute;dez un
2031     r&eacute;pertoire ne contenant que des fichiers GIF, et si vous ne voulez
2032     pas leur ajouter l'extension <code>.gif</code>, vous pouvez utiliser
2033     :</p>
2034
2035     <highlight language="config">ForceType image/gif</highlight>
2036
2037     <p>Notez que cette directive l'emporte sur d'autres associations de
2038     type de m&eacute;dium indirectes d&eacute;finies dans mime.types ou via la
2039     directive <directive module="mod_mime">AddType</directive>.</p>
2040
2041     <p>Vous pouvez aussi annuler toute d&eacute;finition plus g&eacute;n&eacute;rale de
2042     <directive>ForceType</directive> en affectant la valeur
2043     <code>None</code> &agrave; l'argument <var>type m&eacute;dium</var> :</p>
2044
2045     <highlight language="config">
2046 # force le type MIME de tous les fichiers &agrave; image/gif:
2047 &lt;Location "/images"&gt;
2048   ForceType image/gif
2049 &lt;/Location&gt;
2050
2051 # mais utilise les m&eacute;thodes classiques d'attribution du type MIME
2052 # dans le sous-r&eacute;pertoire suivant :
2053 &lt;Location "/images/mixed"&gt;
2054   ForceType None
2055 &lt;/Location&gt;
2056     </highlight>
2057     
2058     <p>A la base, cette directive &eacute;crase le type de contenu g&eacute;n&eacute;r&eacute; pour
2059     les fichiers statiques servis &agrave; partir du syt&egrave;me de fichiers. Pour
2060     les ressources autres que les fichiers statiques pour lesquels le
2061     g&eacute;n&eacute;rateur de r&eacute;ponse sp&eacute;cifie en g&eacute;n&eacute;ral un type de contenu, cette
2062     directive est ignor&eacute;e.</p>
2063
2064     <note><title>Note</title>
2065     <p>Si aucun gestionnaire n'est explicitement d&eacute;fini pour une
2066     requ&ecirc;te, le type de contenu sp&eacute;cifi&eacute; sera aussi utilis&eacute; comme nom de
2067     gestionnaire.</p>
2068    
2069     <p>Lorsque des directives explicites comme <directive
2070     module="core">SetHandler</directive> ou
2071     <directive>module="mod_mime">AddHandler</directive> ne s'appliquent
2072     pas &agrave; la requ&ecirc;te courante, le nom du gestionnaire interne
2073     normalement d&eacute;fini par ces directives correspondra alors au type de
2074     contenu sp&eacute;cifi&eacute; par cette directive.
2075     </p>
2076     <p>Il s'agit d'un comportement historique que certains modules
2077     tiers, comme mod_php, peuvent interpr&eacute;ter comme un type de contenu
2078     artificiel ne servant qu'&agrave; indiquer le module qui doit prendre en
2079     compte la requ&ecirc;te consid&eacute;r&eacute;e. 
2080     </p>
2081
2082     <p>Dans la mesure du possible, il est conseill&eacute; d'&eacute;viter les
2083     configurations qui comportent de tels types artificiels. En outre,
2084     les configurations qui restreignent l'acc&egrave;s aux directives
2085     <directive module="core" >SetHandler</directive> ou <directive
2086     module="mod_mime">AddHandler</directive> doivent aussi restreindre
2087     l'acc&egrave;s &agrave; cette directive.</p>
2088     </note>
2089
2090 </usage>
2091 </directivesynopsis>
2092
2093 <directivesynopsis>
2094 <name>GprofDir</name>
2095 <description>R&eacute;pertoire dans lequel &eacute;crire les donn&eacute;es de profiling
2096 gmon.out.</description>
2097 <syntax>GprofDir <var>/tmp/gprof/</var>|<var>/tmp/gprof/</var>%</syntax>
2098 <contextlist><context>server config</context><context>virtual host</context>
2099 </contextlist>
2100
2101 <usage>
2102     <p>Lorsque le serveur a &eacute;t&eacute; compil&eacute; avec le support du profiling
2103     gprof, la directive <directive>GprofDir</directive> permet de
2104     sp&eacute;cifier dans quel r&eacute;pertoire les fichiers <code>gmon.out</code>
2105     doivent &ecirc;tre &eacute;crits lorsque le processus s'arr&ecirc;te. Si l'argument se
2106     termine par un caract&egrave;re pourcentage ('%'), des sous-r&eacute;pertoires
2107     sont cr&eacute;&eacute;s pour chaque identifiant de processus.</p>
2108
2109     <p>Cette directive ne fonctionne actuellement qu'avec le MPM
2110     <module>prefork</module>.</p>
2111 </usage>
2112 </directivesynopsis>
2113
2114 <directivesynopsis>
2115 <name>HostnameLookups</name>
2116 <description>Active la recherche DNS sur les adresses IP des
2117 clients</description>
2118 <syntax>HostnameLookups On|Off|Double</syntax>
2119 <default>HostnameLookups Off</default>
2120 <contextlist><context>server config</context><context>virtual
2121 host</context>
2122 <context>directory</context></contextlist>
2123
2124 <usage>
2125     <p>Cette directive active la recherche DNS afin de pouvoir
2126     journaliser les nom d'h&ocirc;tes (et les passer aux programmes CGI et aux
2127     inclusions SSI via la variable <code>REMOTE_HOST</code>). La valeur
2128     <code>Double</code> d&eacute;clenche une double recherche DNS inverse. En
2129     d'autres termes, une fois la recherche inverse effectu&eacute;e, on lance
2130     une recherche directe sur le r&eacute;sultat de cette derni&egrave;re. Au moins
2131     une des adresses IP fournies par la recherche directe doit
2132     correspondre &agrave; l'adresse originale (ce que l'on nomme
2133     <code>PARANOID</code> dans la terminologie "tcpwrappers").</p>
2134
2135     <p>Quelle que soit la configuration, lorsqu'on utilise
2136     <module>mod_authz_host</module> pour contr&ocirc;ler l'acc&egrave;s en fonction
2137     du nom d'h&ocirc;te, une double recherche DNS inverse est effectu&eacute;e,
2138     s&eacute;curit&eacute; oblige. Notez cependant que le r&eacute;sultat de cette double
2139     recherche n'est en g&eacute;n&eacute;ral pas accessible, &agrave; moins que vous n'ayez
2140     sp&eacute;cifi&eacute; <code>HostnameLookups Double</code>. Par exemple, si vous
2141     n'avez sp&eacute;cifi&eacute; que <code>HostnameLookups On</code>, et si une
2142     requ&ecirc;te concerne un objet prot&eacute;g&eacute; par des restrictions en fonction
2143     du nom d'h&ocirc;te, quel que soit le r&eacute;sultat de la double recherche
2144     inverse, les programmes CGI ne recevront que le r&eacute;sultat de la
2145     recherche inverse simple dans la variable
2146     <code>REMOTE_HOST</code>.</p>
2147
2148     <p>La valeur par d&eacute;faut est <code>Off</code> afin de pr&eacute;server le
2149     traffic r&eacute;seau des sites pour lesquels la recherche inverse n'est
2150     pas vraiment n&eacute;cessaire. Cette valeur par d&eacute;faut est aussi b&eacute;n&eacute;fique
2151     pour les utilisateurs finaux car il n'ont ainsi pas &agrave; subir de temps
2152     d'attente suppl&eacute;mentaires dus aux recherches DNS. Les sites
2153     fortement charg&eacute;s devraient laisser cette directive &agrave;
2154     <code>Off</code>, car les recherches DNS peuvent prendre des temps
2155     tr&egrave;s longs. Vous pouvez &eacute;ventuellement utiliser hors ligne
2156     l'utilitaire <program>logresolve</program>, compil&eacute; par d&eacute;faut dans
2157     le sous-r&eacute;pertoire <code>bin</code> de votre r&eacute;pertoire
2158     d'installation, afin de d&eacute;terminer les noms d'h&ocirc;tes associ&eacute;s aux
2159     adresses IP journalis&eacute;es.</p>
2160
2161     <p>Enfin, si vous avez des <a
2162     href="mod_authz_host.html#reqhost">directives Require &agrave; base de
2163     nom</a>, une recherche de nom d'h&ocirc;te sera effectu&eacute;e quelle que soit
2164     la d&eacute;finition de la directive <code>HostnameLookups</code>.</p>
2165 </usage>
2166 </directivesynopsis>
2167
2168 <directivesynopsis type="section">
2169 <name>If</name>
2170 <description>Contient des directives qui ne s'appliquent que si une
2171 condition est satisfaite au cours du traitement d'une
2172 requ&ecirc;te</description>
2173 <syntax>&lt;If <var>expression</var>&gt; ... &lt;/If&gt;</syntax>
2174 <contextlist><context>server config</context><context>virtual
2175 host</context>
2176 <context>directory</context><context>.htaccess</context>
2177 </contextlist>
2178 <override>All</override>
2179
2180 <usage>
2181     <p>La directive <directive type="section">If</directive> &eacute;value une
2182     expression &agrave; la vol&eacute;e, et applique les directives qu'elle contient
2183     si et seulement si l'expression renvoie la valeur "vrai". Par
2184     exemple :</p>
2185
2186     <highlight language="config">&lt;If "-z req('Host')"&gt;</highlight>
2187
2188     <p>serait satisfaite pour les requ&ecirc;tes HTTP/1.0 sans en-t&ecirc;te
2189     <var>Host:</var>. Les expressions peuvent contenir diff&eacute;rents
2190     op&eacute;rateurs de type shell pour la comparaison de cha&icirc;nes
2191     (<code>==</code>, <code>!=</code>, <code>&lt;</code>, ...), la
2192     comparaison d'entiers (<code>-eq</code>, <code>-ne</code>, ...), ou
2193     &agrave; usages divers (<code>-n</code>, <code>-z</code>, <code>-f</code>,
2194     ...). Les expressions rationnelles sont aussi support&eacute;es,</p>
2195
2196     <highlight language="config">&lt;If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/"&gt;</highlight>
2197
2198     <p>ainsi que les comparaison de mod&egrave;les de type shell et de
2199     nombreuses autres op&eacute;rations. Ces op&eacute;rations peuvent &ecirc;tre effectu&eacute;es
2200     sur les en-t&ecirc;tes de requ&ecirc;tes (<code>req</code>), les variables
2201     d'environnement (<code>env</code>), et un grand nombre d'autres
2202     propri&eacute;t&eacute;s. La documentation compl&egrave;te est disponible dans <a
2203     href="../expr.html">Les expressions dans le serveur HTTP Apache</a>.</p>
2204
2205     <p>Cette section de configuration ne peut contenir que des
2206     directives qui supportent le <a
2207     href="directive-dict.html#Context">contexte de r&eacute;pertoire</a>.</p>
2208
2209     <note type="warning">
2210     Certaines variables comme <code>CONTENT_TYPE</code> ainsi que
2211     d'autres en-t&ecirc;tes de r&eacute;ponse ne seront pas disponibles dans ce bloc,
2212     car elle sont d&eacute;finies apr&egrave;s l'&eacute;valuation des conditions &lt;If&gt;.
2213     </note>
2214
2215 </usage>
2216
2217 <seealso><a href="../expr.html">Les expressions dans le serveur HTTP
2218 Apache</a>, pour une r&eacute;f&eacute;rence compl&egrave;te et d'autres exemples.</seealso>
2219 <seealso><directive type="section" module="core">ElseIf</directive></seealso>
2220 <seealso><directive type="section" module="core">Else</directive></seealso>
2221 <seealso><a href="../sections.html">Comment fonctionnent les sections
2222 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
2223 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
2224 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te. Les
2225 directives <directive type="section">If</directive>, <directive
2226 type="section">ElseIf</directive>, et <directive
2227 type="section">Else</directive> s'appliquent en dernier.</seealso>
2228 </directivesynopsis>
2229
2230 <directivesynopsis type="section">
2231 <name>IfDefine</name>
2232 <description>Contient des directives qui ne s'appliqueront que si un
2233 test retourne "vrai" au d&eacute;marrage du serveur</description>
2234 <syntax>&lt;IfDefine [!]<var>param&egrave;tre</var>&gt; ...
2235     &lt;/IfDefine&gt;</syntax>
2236 <contextlist><context>server config</context><context>virtual
2237 host</context>
2238 <context>directory</context><context>.htaccess</context>
2239 </contextlist>
2240 <override>All</override>
2241
2242 <usage>
2243     <p>La section <code>&lt;IfDefine
2244     <var>test</var>&gt;...&lt;/IfDefine&gt;</code> permet de
2245     conf&eacute;rer un caract&egrave;re conditionnel &agrave; un ensemble de directives. Les
2246     directives situ&eacute;es &agrave; l'int&eacute;rieur d'une section <directive
2247     type="section">IfDefine</directive> ne s'appliquent que si
2248     <var>test</var> est vrai. Si <var>test</var> est faux, tout ce qui
2249     se trouve entre les balises de d&eacute;but et de fin est ignor&eacute;.</p>
2250
2251     <p><var>test</var> peut se pr&eacute;senter sous deux formes :</p>
2252
2253     <ul>
2254       <li><var>nom param&egrave;tre</var></li>
2255
2256       <li><code>!</code><var>nom param&egrave;tre</var></li>
2257     </ul>
2258
2259     <p>Dans le premier cas, les directives situ&eacute;es entre les balises de
2260     d&eacute;but et de fin ne s'appliqueront que si le param&egrave;tre nomm&eacute; <var>nom
2261     param&egrave;tre</var> est d&eacute;fini. Le second format inverse le test, et
2262     dans ce cas, les directives ne s'appliqueront que si <var>nom
2263     param&egrave;tre</var> n'est <strong>pas</strong> d&eacute;fini.</p>
2264
2265     <p>L'argument <var>nom param&egrave;tre</var> est une d&eacute;finition qui peut
2266     &ecirc;tre effectu&eacute;e par la ligne de commande
2267     <program>httpd</program> via le param&egrave;tre
2268     <code>-D<var>param&egrave;tre</var></code> au d&eacute;marrage du serveur, ou via la
2269     directive <directive module="core">Define</directive>.</p>
2270
2271     <p>Les sections <directive type="section">IfDefine</directive>
2272     peuvent &ecirc;tre imbriqu&eacute;es, ce qui permet d'impl&eacute;menter un test
2273     multi-param&egrave;tres simple. Exemple :</p>
2274
2275     <example>httpd -DReverseProxy -DUseCache -DMemCache ...</example>
2276     <highlight language="config">
2277 &lt;IfDefine ReverseProxy&gt;
2278   LoadModule proxy_module   modules/mod_proxy.so
2279   LoadModule proxy_http_module   modules/mod_proxy_http.so
2280   &lt;IfDefine UseCache&gt;
2281     LoadModule cache_module   modules/mod_cache.so
2282     &lt;IfDefine MemCache&gt;
2283       LoadModule mem_cache_module   modules/mod_mem_cache.so
2284     &lt;/IfDefine&gt;
2285     &lt;IfDefine !MemCache&gt;
2286       LoadModule cache_disk_module   modules/mod_cache_disk.so
2287     &lt;/IfDefine&gt;
2288   &lt;/IfDefine&gt;
2289 &lt;/IfDefine&gt;
2290     </highlight>
2291 </usage>
2292 </directivesynopsis>
2293
2294 <directivesynopsis type="section">
2295 <name>IfModule</name>
2296 <description>Contient des directives qui ne s'appliquent qu'en fonction
2297 de la pr&eacute;sence ou de l'absence d'un module sp&eacute;cifique</description>
2298 <syntax>&lt;IfModule [!]<var>fichier module</var>|<var>identificateur
2299 module</var>&gt; ... &lt;/IfModule&gt;</syntax>
2300 <contextlist><context>server config</context><context>virtual
2301 host</context>
2302 <context>directory</context><context>.htaccess</context>
2303 </contextlist>
2304 <override>All</override>
2305
2306 <usage>
2307     <p>La section <code>&lt;IfModule
2308     <var>test</var>&gt;...&lt;/IfModule&gt;</code> permet de conf&eacute;rer &agrave;
2309     des directives un caract&egrave;re conditionnel bas&eacute; sur la pr&eacute;sence d'un
2310     module sp&eacute;cifique. Les directives situ&eacute;es dans une section
2311     <directive type="section">IfModule</directive> ne s'appliquent que
2312     si <var>test</var> est vrai. Si <var>test</var> est faux, tout ce
2313     qui se trouve entre les balises de d&eacute;but et de fin est ignor&eacute;.</p>
2314
2315     <p><var>test</var> peut se pr&eacute;senter sous deux formes :</p>
2316
2317     <ul>
2318       <li><var>module</var></li>
2319
2320       <li>!<var>module</var></li>
2321     </ul>
2322
2323     <p>Dans le premier cas, les directives situ&eacute;es entre les balises de
2324     d&eacute;but et de fin ne s'appliquent que si le module <var>module</var>
2325     est pr&eacute;sent -- soit compil&eacute; avec le binaire Apache httpd, soit charg&eacute;
2326     dynamiquement via la directive <directive module="mod_so"
2327     >LoadModule</directive>. Le second format inverse le test, et dans
2328     ce cas, les directives ne s'appliquent que si <var>module</var>
2329     n'est <strong>pas</strong> pr&eacute;sent.</p>
2330
2331     <p>L'argument <var>module</var> peut contenir soit l'identificateur
2332     du module, soit le nom du fichier source du module. Par exemple,
2333     <code>rewrite_module</code> est un identificateur et
2334     <code>mod_rewrite.c</code> le nom du fichier source
2335     correspondant. Si un module comporte plusieurs fichiers sources,
2336     utilisez le nom du fichier qui contient la cha&icirc;ne de caract&egrave;res
2337     <code>STANDARD20_MODULE_STUFF</code>.</p>
2338
2339     <p>Les sections <directive type="section">IfModule</directive>
2340     peuvent &ecirc;tre imbriqu&eacute;es, ce qui permet d'impl&eacute;menter des tests
2341     multi-modules simples.</p>
2342
2343     <note>Cette section ne doit &ecirc;tre utilis&eacute;e que si votre fichier de
2344     configuration ne fonctionne qu'en fonction de la pr&eacute;sence ou de
2345     l'absence d'un module sp&eacute;cifique. D'une mani&egrave;re g&eacute;n&eacute;rale, il n'est
2346     pas n&eacute;cessaire de placer les directives &agrave; l'int&eacute;rieur de sections
2347     <directive type="section">IfModule</directive>.</note>
2348 </usage>
2349 </directivesynopsis>
2350
2351 <directivesynopsis>
2352 <name>Include</name>
2353 <description>Inclut d'autres fichiers de configuration dans un des
2354 fichiers de configuration du serveur</description>
2355 <syntax>Include <var>chemin-fichier</var>|<var>chemin-r&eacute;pertoire</var>|<var>wildcard</var></syntax>
2356 <contextlist><context>server config</context><context>virtual
2357 host</context>
2358 <context>directory</context>
2359 </contextlist>
2360 <compatibility>Utilisation des caract&egrave;res
2361 g&eacute;n&eacute;riques dans la partie chemin depuis la version 2.3.6</compatibility>
2362
2363 <usage>
2364     <p>Cette directive permet l'inclusion d'autres fichiers de
2365     configuration dans un des fichiers de configuration du serveur.</p>
2366
2367     <p>On peut utiliser des caract&egrave;res g&eacute;n&eacute;riques de style Shell
2368     (<code>fnmatch()</code>) aussi bien dans la partie nom de fichier du
2369     chemin que dans la partie r&eacute;pertoires pour inclure plusieurs
2370     fichiers en une
2371     seule fois, selon leur ordre alphab&eacute;tique. De plus, si la directive
2372     <directive>Include</directive> pointe vers un r&eacute;pertoire, Apache
2373     httpd inclura tous les fichiers de ce r&eacute;pertoire et de tous ces
2374     sous-r&eacute;pertoires. L'inclusion de r&eacute;pertoires entiers est cependant
2375     d&eacute;conseill&eacute;e, car il est fr&eacute;quent d'oublier des fichiers
2376     temporaires dans un r&eacute;pertoire, ce qui causerait une erreur
2377     <program>httpd</program> en cas d'inclusion. Pour inclure des
2378     fichiers qui correspondent &agrave; un certain mod&egrave;le, comme *.conf par
2379     exemple, nous vous recommandons d'utiliser plut&ocirc;t la syntaxe avec
2380     caract&egrave;res g&eacute;n&eacute;riques comme ci-dessous.</p>
2381
2382     <p>La directive <directive module="core">Include</directive>
2383     <strong>&eacute;chouera avec un code d'erreur</strong> si une expression
2384    contenant des caract&egrave;res g&eacute;n&eacute;riques ne correspond &agrave; aucun fichier.
2385    Pour ignorer les expressions contenant des caract&egrave;res g&eacute;n&eacute;riques ne
2386    correspondant &agrave; aucun fichier, utilisez la directive <directive
2387    module="core">IncludeOptional</directive>.</p>
2388
2389     <p>Le chemin fichier sp&eacute;cifi&eacute; peut &ecirc;tre soit un chemin absolu, soit
2390     un chemin relatif au r&eacute;pertoire d&eacute;fini par la directive <directive
2391     module="core">ServerRoot</directive>.</p>
2392
2393     <p>Exemples :</p>
2394
2395     <highlight language="config">
2396 Include /usr/local/apache2/conf/ssl.conf
2397 Include /usr/local/apache2/conf/vhosts/*.conf
2398     </highlight>
2399
2400     <p>ou encore, avec des chemins relatifs au r&eacute;pertoire d&eacute;fini par la
2401     directive <directive module="core">ServerRoot</directive> :</p>
2402
2403     <highlight language="config">
2404 Include conf/ssl.conf
2405 Include conf/vhosts/*.conf
2406     </highlight>
2407
2408     <p>On peut aussi ins&eacute;rer des caract&egrave;res g&eacute;n&eacute;riques dans la partie
2409     r&eacute;pertoires du chemin. Dans l'exemple suivant, la directive
2410     &eacute;chouera si aucun sous-r&eacute;pertoire de conf/vhosts ne contient au
2411     moins un fichier *.conf :</p>
2412   
2413     <highlight language="config">Include conf/vhosts/*/*.conf</highlight>
2414
2415     <p>Par contre, dans l'exemple suivant, la directive sera simplement
2416     ignor&eacute;e si aucun sous-r&eacute;pertoire de conf/vhosts ne contient au
2417     moins un fichier *.conf :</p>
2418
2419     <highlight language="config">IncludeOptional conf/vhosts/*/*.conf</highlight>
2420   
2421 </usage>    
2422
2423 <seealso><directive module="core">IncludeOptional</directive></seealso>
2424 <seealso><program>apachectl</program></seealso>
2425 </directivesynopsis>
2426
2427 <directivesynopsis>
2428 <name>IncludeOptional</name>
2429 <description>Inclusion de fichiers dans le fichier de configuration</description>
2430 <syntax>IncludeOptional
2431 <var>chemin-fichier</var>|<var>chemin-r&eacute;pertoire</var>|<var>wildcard</var></syntax>
2432 <contextlist><context>server config</context><context>virtual host</context>
2433 <context>directory</context>
2434 </contextlist>
2435 <compatibility>Disponible &agrave; partir de la version 2.3.6 du serveur HTTP
2436 Apache</compatibility>
2437  
2438 <usage>
2439     <p>Cette directive permet d'inclure des fichiers dans les fichiers
2440     de configuration du serveur. Elle fonctionne de mani&egrave;re identique &agrave;
2441     la directive <directive module="core">Include</directive>, &agrave;
2442     l'exception du fait que si l'expression avec caract&egrave;res g&eacute;n&eacute;riques
2443     wilcard ne correspond &agrave; aucun fichier ou r&eacute;pertoire, elle sera
2444     ignor&eacute;e silencieusement au lieu de causer une erreur.</p>    
2445     
2446 </usage>
2447
2448 <seealso><directive module="core">Include</directive></seealso>
2449 <seealso><program>apachectl</program></seealso>
2450 </directivesynopsis>
2451
2452 <directivesynopsis>
2453 <name>KeepAlive</name>
2454 <description>Active les connexions HTTP persistantes</description>
2455 <syntax>KeepAlive On|Off</syntax>
2456 <default>KeepAlive On</default>
2457 <contextlist><context>server config</context><context>virtual
2458 host</context>
2459 </contextlist>
2460
2461 <usage>
2462     <p>L'extension Keep-Alive de HTTP/1.0 et l'impl&eacute;mentation des
2463     connexions persistantes dans HTTP/1.1 ont rendu possibles des
2464     sessions HTTP de longue dur&eacute;e, ce qui permet de transmettre
2465     plusieurs requ&ecirc;tes via la m&ecirc;me connexion TCP. Dans certains cas, le
2466     gain en rapidit&eacute; pour des documents comportant de nombreuses images
2467     peut atteindre 50%. Pour activer les connexions persistantes,
2468     d&eacute;finissez <code>KeepAlive On</code>.</p>
2469
2470     <p>Pour les clients HTTP/1.0, les connexions persistantes ne seront
2471     mises en oeuvre que si elles ont &eacute;t&eacute; sp&eacute;cialement demand&eacute;es par un
2472     client. De plus, une connexion persistante avec un client HTTP/1.0
2473     ne peut &ecirc;tre utilis&eacute;e que si la taille du contenu est connue
2474     d'avance. Ceci implique que les contenus dynamiques comme les
2475     sorties CGI, les pages SSI, et les listings de r&eacute;pertoires g&eacute;n&eacute;r&eacute;s
2476     par le serveur n'utiliseront en g&eacute;n&eacute;ral pas les connexions
2477     persistantes avec les clients HTTP/1.0. Avec les clients HTTP/1.1,
2478     les connexions persistantes sont utilis&eacute;es par d&eacute;faut, sauf
2479     instructions contraires. Si le client le demande, le transfert par
2480     tron&ccedil;ons de taille fixe (chunked encoding) sera utilis&eacute; afin de
2481     transmettre un contenu de longueur inconnue via une connexion
2482     persistante.</p>
2483
2484     <p>Lorsqu'un client utilise une connexion persistante, elle comptera
2485     pour une seule requ&ecirc;te pour la directive <directive
2486     module="mpm_common">MaxConnectionsPerChild</directive>, quel
2487     que soit le nombre de requ&ecirc;tes transmises via cette connexion.</p>
2488 </usage>
2489
2490 <seealso><directive module="core">MaxKeepAliveRequests</directive></seealso>
2491 </directivesynopsis>
2492
2493 <directivesynopsis>
2494 <name>KeepAliveTimeout</name>
2495 <description>Dur&eacute;e pendant laquelle le serveur va attendre une requ&ecirc;te
2496 avant de fermer une connexion persistante</description>
2497 <syntax>KeepAliveTimeout <var>nombre</var>[ms]</syntax>
2498 <default>KeepAliveTimeout 5</default>
2499 <contextlist><context>server config</context><context>virtual
2500 host</context>
2501 </contextlist>
2502
2503 <usage>
2504     <p>Le nombre de secondes pendant lesquelles Apache httpd va attendre une
2505     requ&ecirc;te avant de fermer la connexion. Le d&eacute;lai peut &ecirc;tre d&eacute;fini en
2506     millisecondes en suffixant sa valeur par ms. La valeur du d&eacute;lai
2507     sp&eacute;cifi&eacute;e par la directive <directive
2508     module="core">Timeout</directive> s'applique d&egrave;s qu'une requ&ecirc;te a
2509     &eacute;t&eacute; re&ccedil;ue.</p>
2510
2511     <p>Donner une valeur trop &eacute;l&eacute;v&eacute;e &agrave;
2512     <directive>KeepAliveTimeout</directive> peut induire des probl&egrave;mes
2513     de performances sur les serveurs fortement charg&eacute;s. Plus le d&eacute;lai
2514     est &eacute;l&eacute;v&eacute;, plus nombreux seront les processus serveur en attente de
2515     requ&ecirc;tes de la part de clients inactifs.</p>
2516
2517     <p>Si la directive <directive>KeepAliveTimeout</directive>
2518     <strong>n'est pas</strong> d&eacute;finie pour un des serveurs virtuels
2519     &agrave; base de nom, c'est le serveur virtuel dont la paire adresse
2520     IP/port correspond le mieux qui sera utilis&eacute;e.</p>
2521 </usage>
2522 </directivesynopsis>
2523
2524 <directivesynopsis type="section">
2525 <name>Limit</name>
2526 <description>Limite les contr&ocirc;les d'acc&egrave;s que la section contient &agrave;
2527 certaines m&eacute;thodes HTTP</description>
2528 <syntax>&lt;Limit <var>m&eacute;thode</var> [<var>m&eacute;thode</var>] ... &gt; ...
2529     &lt;/Limit&gt;</syntax>
2530 <contextlist><context>directory</context><context>.htaccess</context>
2531 </contextlist>
2532 <override>AuthConfig, Limit</override>
2533
2534 <usage>
2535     <p>Les contr&ocirc;les d'acc&egrave;s s'appliquent normalement &agrave;
2536     <strong>toutes</strong> les m&eacute;thodes d'acc&egrave;s, et c'est en g&eacute;n&eacute;ral le
2537     comportement souhait&eacute;. <strong>Dans le cas g&eacute;n&eacute;ral, les directives
2538     de contr&ocirc;le d'acc&egrave;s n'ont pas &agrave; &ecirc;tre plac&eacute;es dans une section
2539     <directive type="section">Limit</directive>.</strong></p>
2540
2541     <p>La directive <directive type="section">Limit</directive> a pour
2542     but de limiter les effets des contr&ocirc;les d'acc&egrave;s aux m&eacute;thodes HTTP
2543     sp&eacute;cifi&eacute;es. Pour toutes les autres m&eacute;thodes, les restrictions
2544     d'acc&egrave;s contenues dans la section <directive
2545     type="section">Limit</directive> <strong>n'auront aucun
2546     effet</strong>. L'exemple suivant n'applique les contr&ocirc;les d'acc&egrave;s
2547     qu'aux m&eacute;thodes <code>POST</code>, <code>PUT</code>, et
2548     <code>DELETE</code>, en laissant les autres m&eacute;thodes sans protection
2549     :</p>
2550
2551     <highlight language="config">
2552 &lt;Limit POST PUT DELETE&gt;
2553   Require valid-user
2554 &lt;/Limit&gt;
2555     </highlight>
2556
2557     <p>La liste des noms de m&eacute;thodes peut contenir une ou plusieurs
2558     valeurs parmi les suivantes : <code>GET</code>, <code>POST</code>,
2559     <code>PUT</code>, <code>DELETE</code>, <code>CONNECT</code>,
2560     <code>OPTIONS</code>, <code>PATCH</code>, <code>PROPFIND</code>,
2561     <code>PROPPATCH</code>, <code>MKCOL</code>, <code>COPY</code>,
2562     <code>MOVE</code>, <code>LOCK</code>, et <code>UNLOCK</code>.
2563     <strong>Le nom de m&eacute;thode est sensible &agrave; la casse.</strong> Si la
2564     valeur <code>GET</code> est pr&eacute;sente, les requ&ecirc;tes <code>HEAD</code>
2565     seront aussi concern&eacute;es. La m&eacute;thode <code>TRACE</code> ne peut pas
2566     &ecirc;tre limit&eacute;e (voir la directive <directive
2567     module="core">TraceEnable</directive>).</p>
2568
2569     <note type="warning">Une section <directive
2570     type="section">LimitExcept</directive> doit toujours &ecirc;tre pr&eacute;f&eacute;r&eacute;e &agrave;
2571     une section <directive type="section">Limit</directive> pour la
2572     restriction d'acc&egrave;s, car une section <directive type="section"
2573     module="core">LimitExcept</directive> fournit une protection contre
2574     les m&eacute;thodes arbitraires.</note>
2575
2576     <p>Les directives <directive type="section">Limit</directive> et
2577     <directive type="section" module="core">LimitExcept</directive>
2578     peuvent &ecirc;tre imbriqu&eacute;es. Dans ce cas, pour chaque niveau des
2579     directives <directive type="section">Limit</directive> ou  <directive
2580     type="section" module="core">LimitExcept</directive>, ces derni&egrave;res
2581     doivent restreindre l'acc&egrave;s pour les m&eacute;thodes auxquelles les
2582     contr&ocirc;les d'acc&egrave;s s'appliquent.</p>
2583
2584     <note type="warning">Lorsqu'on utilise les directives <directive
2585     type="section">Limit</directive> ou <directive
2586     type="section">LimitExcept</directive> avec la directive <directive
2587     module="mod_authz_core">Require</directive>, la premi&egrave;re directive
2588     <directive module="mod_authz_core">Require</directive> dont la
2589     condition est satisfaite autorise la requ&ecirc;te, sans tenir compte de
2590     la pr&eacute;sence d'autres directives <directive
2591     module="mod_authz_core">Require</directive>.</note>
2592
2593     <p>Par exemple, avec la configuration suivante, tous les
2594     utilisateurs seront autoris&eacute;s &agrave; effectuer des requ&ecirc;tes
2595     <code>POST</code>, et la directive <code>Require group
2596     editors</code> sera ignor&eacute;e dans tous les cas :</p>
2597
2598     <highlight language="config">
2599 &lt;LimitExcept GET&gt;
2600   Require valid-user
2601 &lt;/LimitExcept&gt;
2602 &lt;Limit POST&gt;
2603   Require group editors
2604 &lt;/Limit&gt;
2605     </highlight>
2606 </usage>
2607 </directivesynopsis>
2608
2609 <directivesynopsis type="section">
2610 <name>LimitExcept</name>
2611 <description>Applique les contr&ocirc;les d'acc&egrave;s &agrave; toutes les m&eacute;thodes HTTP,
2612 sauf celles qui sont sp&eacute;cifi&eacute;es</description>
2613 <syntax>&lt;LimitExcept <var>m&eacute;thode</var> [<var>m&eacute;thode</var>] ... &gt; ...
2614     &lt;/LimitExcept&gt;</syntax>
2615 <contextlist><context>directory</context><context>.htaccess</context>
2616 </contextlist>
2617 <override>AuthConfig, Limit</override>
2618
2619 <usage>
2620     <p><directive type="section">LimitExcept</directive> et
2621     <code>&lt;/LimitExcept&gt;</code> permettent de regrouper des
2622     directives de contr&ocirc;le d'acc&egrave;s qui s'appliqueront &agrave; toutes les
2623     m&eacute;thodes d'acc&egrave;s HTTP qui ne font <strong>pas</strong> partie de la
2624     liste des arguments ; en d'autres termes, elles ont un comportement
2625     oppos&eacute; &agrave; celui de la section <directive type="section"
2626     module="core">Limit</directive>, et on peut les utiliser pour
2627     contr&ocirc;ler aussi bien les m&eacute;thodes standards que les m&eacute;thodes non
2628     standards ou non reconnues. Voir la documentation de la section
2629     <directive module="core" type="section">Limit</directive> pour plus
2630     de d&eacute;tails.</p>
2631
2632     <p>Par exemple :</p>
2633
2634     <highlight language="config">
2635 &lt;LimitExcept POST GET&gt;
2636   Require valid-user
2637 &lt;/LimitExcept&gt;
2638     </highlight>
2639
2640 </usage>
2641 </directivesynopsis>
2642
2643 <directivesynopsis>
2644 <name>LimitInternalRecursion</name>
2645 <description>D&eacute;termine le nombre maximal de redirections internes et de
2646 sous-requ&ecirc;tes imbriqu&eacute;es</description>
2647 <syntax>LimitInternalRecursion <var>nombre</var> [<var>nombre</var>]</syntax>
2648 <default>LimitInternalRecursion 10</default>
2649 <contextlist><context>server config</context><context>virtual
2650 host</context>
2651 </contextlist>
2652
2653 <usage>
2654     <p>Une redirection interne survient, par exemple, quand on utilise
2655     la directive <directive module="mod_actions">Action</directive> qui
2656     redirige en interne la requ&ecirc;te d'origine vers un script CGI. Une
2657     sous-requ&ecirc;te est le m&eacute;canisme qu'utilise Apache httpd pour d&eacute;terminer ce
2658     qui se passerait pour un URI s'il faisait l'objet d'une requ&ecirc;te. Par
2659     exemple, <module>mod_dir</module> utilise les sous-requ&ecirc;tes pour
2660     rechercher les fichiers list&eacute;s dans la directive <directive
2661     module="mod_dir">DirectoryIndex</directive>.</p>
2662
2663     <p>La directive <directive>LimitInternalRecursion</directive> permet
2664     d'&eacute;viter un crash du serveur d&ucirc; &agrave; un bouclage infini de redirections
2665     internes ou de sous-requ&ecirc;tes. De tels bouclages sont dus en g&eacute;n&eacute;ral
2666     &agrave; des erreurs de configuration.</p>
2667
2668     <p>La directive accepte, comme arguments, deux limites qui sont
2669     &eacute;valu&eacute;es &agrave; chaque requ&ecirc;te. Le premier <var>nombre</var> est le
2670     nombre maximum de redirections internes qui peuvent se succ&eacute;der. Le
2671     second <var>nombre</var> d&eacute;termine la profondeur d'imbrication
2672     maximum des sous-requ&ecirc;tes. Si vous ne sp&eacute;cifiez qu'un seul
2673     <var>nombre</var>, il sera affect&eacute; aux deux limites.</p>
2674
2675     <highlight language="config">LimitInternalRecursion 5</highlight>
2676 </usage>
2677 </directivesynopsis>
2678
2679 <directivesynopsis>
2680 <name>LimitRequestBody</name>
2681 <description>limite la taille maximale du corps de la requ&ecirc;te HTTP
2682 envoy&eacute;e par le client</description>
2683 <syntax>LimitRequestBody <var>octets</var></syntax>
2684 <default>LimitRequestBody 0</default>
2685 <contextlist><context>server config</context><context>virtual
2686 host</context>
2687 <context>directory</context><context>.htaccess</context>
2688 </contextlist>
2689 <override>All</override>
2690
2691 <usage>
2692     <p>Cette directive sp&eacute;cifie la taille maximale autoris&eacute;e pour le
2693     corps d'une requ&ecirc;te ; la valeur de l'argument <var>octets</var> va
2694     de 0 (pour une taille illimit&eacute;e), &agrave; 2147483647 (2Go). Voir la note
2695     ci-dessous pour la limite d'applicabilit&eacute; aux requ&ecirc;tes mandat&eacute;es.</p>
2696
2697     <p>La directive <directive>LimitRequestBody</directive> permet de
2698     d&eacute;finir une limite pour la taille maximale autoris&eacute;e du corps d'une
2699     requ&ecirc;te HTTP en tenant compte du contexte dans lequel la directive
2700     a &eacute;t&eacute; plac&eacute;e (c'est &agrave; dire au niveau du serveur, d'un r&eacute;pertoire,
2701     d'un fichier ou d'une localisation). Si la requ&ecirc;te du client d&eacute;passe
2702     cette limite, le serveur r&eacute;pondra par un message d'erreur et ne
2703     traitera pas la requ&ecirc;te. La taille du corps d'une requ&ecirc;te normale va
2704     varier de mani&egrave;re importante en fonction de la nature de la
2705     ressource et des m&eacute;thodes autoris&eacute;es pour cette derni&egrave;re. Les
2706     scripts CGI utilisent souvent le corps du message pour extraire les
2707     informations d'un formulaire. Les impl&eacute;mentations de la m&eacute;thode
2708     <code>PUT</code> n&eacute;cessitent une valeur au moins aussi &eacute;lev&eacute;e que la
2709     taille maximale des repr&eacute;sentations que le serveur d&eacute;sire accepter
2710     pour cette ressource.</p>
2711
2712     <p>L'administrateur du serveur peut utiliser cette directive pour
2713     contr&ocirc;ler plus efficacement les comportements anormaux des requ&ecirc;tes
2714     des clients, ce qui lui permettra de pr&eacute;venir certaines formes
2715     d'attaques par d&eacute;ni de service.</p>
2716
2717     <p>Si par exemple, vous autorisez le chargement de fichiers vers une
2718     localisation particuli&egrave;re, et souhaitez limiter la taille des
2719     fichiers charg&eacute;s &agrave; 100Ko, vous pouvez utiliser la directive suivante
2720     :</p>
2721
2722     <highlight language="config">LimitRequestBody 102400</highlight>
2723
2724     <note><p>Pour une description d&eacute;taill&eacute;e de la mani&egrave;re dont cette
2725     directive est interpr&eacute;t&eacute;e par les requ&ecirc;tes mandat&eacute;es, voir la
2726     documentation du module <module>mod_proxy</module>.</p>
2727     </note>
2728
2729 </usage>
2730 </directivesynopsis>
2731
2732 <directivesynopsis>
2733 <name>LimitRequestFields</name>
2734 <description>Limite le nombre de champs d'en-t&ecirc;te autoris&eacute;s dans une
2735 requ&ecirc;te HTTP</description>
2736 <syntax>LimitRequestFields <var>nombre</var></syntax>
2737 <default>LimitRequestFields 100</default>
2738 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2739
2740 <usage>
2741     <p><var>nombre</var> est un entier de 0 (nombre de champs illimit&eacute;)
2742     &agrave; 32767. La valeur par d&eacute;faut est d&eacute;finie &agrave; la compilation par la
2743     constante <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 selon la
2744     distribution).</p>
2745
2746     <p>La directive <directive>LimitRequestFields</directive> permet &agrave;
2747     l'administrateur du serveur de modifier le nombre maximum de champs
2748     d'en-t&ecirc;te autoris&eacute;s dans une requ&ecirc;te HTTP. Pour un serveur, cette
2749     valeur doit &ecirc;tre sup&eacute;rieure au nombre de champs qu'une requ&ecirc;te
2750     client normale peut contenir. Le nombre de champs d'en-t&ecirc;te d'une
2751     requ&ecirc;te qu'un client utilise d&eacute;passe rarement 20, mais ce nombre
2752     peut varier selon les impl&eacute;mentations des clients, et souvent en
2753     fonction des extensions que les utilisateurs configurent dans leurs
2754     navigateurs pour supporter la n&eacute;gociation de contenu d&eacute;taill&eacute;e. Les
2755     extensions HTTP optionnelles utilisent souvent les
2756     champs d'en-t&ecirc;te des requ&ecirc;tes.</p>
2757
2758     <p>L'administrateur du serveur peut utiliser cette directive pour
2759     contr&ocirc;ler plus efficacement les comportements anormaux des requ&ecirc;tes
2760     des clients, ce qui lui permettra de pr&eacute;venir certaines formes
2761     d'attaques par d&eacute;ni de service. La valeur sp&eacute;cifi&eacute;e doit &ecirc;tre
2762     augment&eacute;e si les clients standards re&ccedil;oivent une erreur du serveur
2763     indiquant que la requ&ecirc;te comportait un nombre d'en-t&ecirc;tes trop
2764     important.</p>
2765
2766     <p>Par exemple :</p>
2767
2768     <highlight language="config">LimitRequestFields 50</highlight>
2769
2770     <note type="warning"><title>Avertissement</title>
2771      <p>Dans le cas des serveurs virtuels &agrave; base de noms, la valeur de
2772      cette directive est extraite du serveur virtuel par d&eacute;faut (le
2773      premier de la liste) pour la paire adresse IP/port.</p>
2774     </note>
2775
2776 </usage>
2777 </directivesynopsis>
2778
2779 <directivesynopsis>
2780 <name>LimitRequestFieldSize</name>
2781 <description>D&eacute;dinit la taille maximale autoris&eacute;e d'un en-t&ecirc;te de
2782 requ&ecirc;te HTTP</description>
2783 <syntax>LimitRequestFieldSize <var>octets</var></syntax>
2784 <default>LimitRequestFieldSize 8190</default>
2785 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2786
2787 <usage>
2788     <p>Cette directive permet de d&eacute;finir le nombre maximum
2789     d'<var>octets</var> autoris&eacute;s dans un en-t&ecirc;te de requ&ecirc;te HTTP.</p>
2790
2791     <p>La directive <directive>LimitRequestFieldSize</directive> permet
2792     &agrave; l'administrateur du serveur de d&eacute;finir la taille
2793     maximale autoris&eacute;e d'un en-t&ecirc;te de requ&ecirc;te HTTP. Pour un serveur,
2794     cette valeur doit &ecirc;tre suffisamment grande pour contenir tout
2795     en-t&ecirc;te d'une requ&ecirc;te client normale. La taille d'un champ d'en-t&ecirc;te
2796     de requ&ecirc;te normal va varier selon les impl&eacute;mentations des clients,
2797     et en fonction des extensions que les utilisateurs
2798     configurent dans leurs navigateurs pour supporter la n&eacute;gociation de
2799     contenu d&eacute;taill&eacute;e. Les en-t&ecirc;tes d'authentification SPNEGO peuvent
2800     atteindre une taille de 12392 octets.</p>
2801
2802     <p>>L'administrateur du serveur peut utiliser cette directive pour
2803     contr&ocirc;ler plus efficacement les comportements anormaux des requ&ecirc;tes
2804     des clients, ce qui lui permettra de pr&eacute;venir certaines formes
2805     d'attaques par d&eacute;ni de service.</p>
2806
2807     <p>Par exemple ::</p>
2808
2809     <highlight language="config">LimitRequestFieldSize 4094</highlight>
2810
2811     <note>Dans des conditions normales, la valeur par d&eacute;faut de cette
2812     directive ne doit pas &ecirc;tre modifi&eacute;e.</note>
2813
2814     <note type="warning"><title>Avertissement</title>
2815      <p>Dans le cas des serveurs virtuels &agrave; base de noms, la valeur de
2816      cette directive est extraite du serveur virtuel par d&eacute;faut (le
2817      premier de la liste) pour lequel la paire adresse IP/port
2818      correspond le mieux.</p>
2819     </note>
2820 </usage>
2821 </directivesynopsis>
2822
2823 <directivesynopsis>
2824 <name>LimitRequestLine</name>
2825 <description>D&eacute;finit la taille maximale d'une ligne de requ&ecirc;te
2826 HTTP</description>
2827 <syntax>LimitRequestLine <var>octets</var></syntax>
2828 <default>LimitRequestLine 8190</default>
2829 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2830
2831 <usage>
2832     <p>Cette directive permet de d&eacute;finir la taille maximale autoris&eacute;e
2833     pour une ligne de requ&ecirc;te HTTP en <var>octets</var>.</p>
2834
2835     <p>La directive <directive>LimitRequestLine</directive> permet &agrave;
2836     l'administrateur du serveur de d&eacute;finir la taille
2837     maximale autoris&eacute;e d'une ligne de requ&ecirc;te HTTP client. Comme une
2838     requ&ecirc;te comporte une m&eacute;thode HTTP, un URI, et une version de
2839     protocole, la directive <directive>LimitRequestLine</directive>
2840     impose une restriction sur la longueur maximale autoris&eacute;e pour un
2841     URI dans une requ&ecirc;te au niveau du serveur. Pour un serveur, cette
2842     valeur doit &ecirc;tre suffisamment grande pour r&eacute;f&eacute;rencer les noms de
2843     toutes ses ressources, y compris toutes informations pouvant &ecirc;tre
2844     ajout&eacute;es dans la partie requ&ecirc;te d'une m&eacute;thode <code>GET</code>.</p>
2845
2846     <p>L'administrateur du serveur peut utiliser cette directive pour
2847     contr&ocirc;ler plus efficacement les comportements anormaux des requ&ecirc;tes
2848     des clients, ce qui lui permettra de pr&eacute;venir certaines formes
2849     d'attaques par d&eacute;ni de service.</p>
2850
2851     <p>Par exemple :</p>
2852
2853     <highlight language="config">LimitRequestLine 4094</highlight>
2854
2855     <note>Dans des conditions normales, cette directive doit conserver
2856     sa valeur par d&eacute;faut.</note>
2857
2858     <note type="warning"><title>Avertissement</title>
2859      <p>Dans le cas des serveurs virtuels &agrave; base de noms, la valeur de
2860      cette directive est extraite du serveur virtuel par d&eacute;faut (le
2861      premier de la liste) pour lequel la paire adresse IP/port
2862      correspond le mieux.</p>
2863     </note>
2864
2865 </usage>
2866 </directivesynopsis>
2867
2868 <directivesynopsis>
2869 <name>LimitXMLRequestBody</name>
2870 <description>D&eacute;finit la taille maximale du corps d'une requ&ecirc;te au format
2871 XML</description>
2872 <syntax>LimitXMLRequestBody <var>octets</var></syntax>
2873 <default>LimitXMLRequestBody 1000000</default>
2874 <contextlist><context>server config</context><context>virtual
2875 host</context>
2876 <context>directory</context><context>.htaccess</context></contextlist>
2877 <override>All</override>
2878
2879 <usage>
2880     <p>Taille maximale (en octets) du corps d'une requ&ecirc;te au format XML.
2881     Une valeur de <code>0</code> signifie qu'aucune limite n'est
2882     impos&eacute;e.</p>
2883
2884     <p>Exemple :</p>
2885
2886     <highlight language="config">LimitXMLRequestBody 0</highlight>
2887
2888 </usage>
2889 </directivesynopsis>
2890
2891 <directivesynopsis type="section">
2892 <name>Location</name>
2893 <description>N'applique les directives contenues qu'aux URLs
2894 sp&eacute;cifi&eacute;es</description>
2895 <syntax>&lt;Location
2896     <var>chemin URL</var>|<var>URL</var>&gt; ... &lt;/Location&gt;</syntax>
2897 <contextlist><context>server config</context><context>virtual
2898 host</context>
2899 </contextlist>
2900
2901 <usage>
2902     <p>La directive <directive type="section">Location</directive>
2903     limite la port&eacute;e des directives contenues aux URLs d&eacute;finies par
2904     l'argument URL. Elle est similaire &agrave; la directive <directive
2905     type="section" module="core">Directory</directive>, et marque le
2906     d&eacute;but d'une section qui se termine par une directive
2907     <code>&lt;/Location&gt;</code>. Les sections <directive
2908     type="section">Location</directive> sont trait&eacute;es selon l'ordre dans
2909     lequel elles apparaissent dans le fichier de configuration, mais
2910     apr&egrave;s les sections <directive
2911     type="section" module="core">Directory</directive> et la lecture des
2912     fichiers <code>.htaccess</code>, et apr&egrave;s les sections <directive
2913     type="section" module="core">Files</directive>.</p>
2914
2915     <p>Les sections <directive type="section">Location</directive>
2916     agissent compl&egrave;tement en dehors du syst&egrave;me de fichiers. Ceci a de
2917     nombreuses cons&eacute;quences. Parmi les plus importantes, on ne doit pas
2918     utiliser les sections <directive type="section">Location</directive>
2919     pour contr&ocirc;ler l'acc&egrave;s aux r&eacute;pertoires du syst&egrave;me de fichiers. Comme
2920     plusieurs URLs peuvent correspondre au m&ecirc;me r&eacute;pertoire du syst&egrave;me de
2921     fichiers, un tel contr&ocirc;le d'acc&egrave;s pourrait &ecirc;tre contourn&eacute;.</p>
2922
2923     <p>Les directives que contient cette section seront appliqu&eacute;es aux
2924     requ&ecirc;tes si la partie chemin de l'URL satisfait &agrave; l'un au moins de
2925     ces crit&egrave;res :
2926     </p>
2927     <ul>
2928       <li>Le chemin sp&eacute;cifi&eacute; correspond exactement &agrave; la partie chemin de
2929       l'URL.
2930       </li>
2931       <li>Le chemin sp&eacute;cifi&eacute;, qui se termine par un slash, est un
2932       pr&eacute;fixe de la partie chemin de l'URL (trait&eacute; comme une racine du
2933       contexte).
2934       </li>
2935       <li>Le chemin sp&eacute;cifi&eacute;, si on lui ajoute un slash de fin, est un
2936       pr&eacute;fixe de la partie chemin de l'URL (aussi trait&eacute; comme une racine du
2937       contexte).
2938       </li>
2939     </ul>
2940     <p>
2941     Dans l'exemple ci-dessous, o&ugrave; aucun slash de fin n'est utilis&eacute;, les
2942     directives contenues dans la section s'appliqueront &agrave; /private1,
2943     /private1/ et /private1/file.txt, mais pas &agrave; /private1other. 
2944     </p>
2945     <highlight language="config">
2946 &lt;Location "/private1"&gt;
2947     #  ...
2948 &lt;/Location&gt;
2949     </highlight>
2950     <p>
2951     De m&ecirc;me, dans l'exemple ci-dessous, o&ugrave; l'on utilise un slash de fin, les
2952     directives contenues dans la section s'appliqueront &agrave; /private2/ et
2953     &agrave; /private2/file.txt, mais pas &agrave; /private2other.
2954     </p>
2955     <highlight language="config">
2956 &lt;Location "/private2<em>/</em>"&gt;
2957     # ...
2958 &lt;/Location&gt;
2959     </highlight>
2960     
2961     <note><title>Quand utiliser la section <directive
2962     type="section">Location</directive></title>
2963
2964     <p>Vous pouvez utiliser une section <directive
2965     type="section">Location</directive> pour appliquer des directives &agrave;
2966     des contenus situ&eacute;s en dehors du syst&egrave;me de fichiers. Pour les
2967     contenus situ&eacute;s &agrave; l'int&eacute;rieur du syst&egrave;me de fichiers, utilisez
2968     plut&ocirc;t les sections <directive
2969     type="section" module="core">Directory</directive> et <directive
2970     type="section" module="core">Files</directive>. <code>&lt;Location
2971     "/"&gt;</code> constitue une exception et permet d'appliquer ais&eacute;ment
2972     une configuration &agrave; l'ensemble du serveur.</p>
2973     </note>
2974
2975     <p>Pour toutes les requ&ecirc;tes originales (non mandat&eacute;es), l'argument
2976     URL est un chemin d'URL de la forme
2977     <code>/chemin/</code>. <em>Aucun protocole, nom d'h&ocirc;te, port, ou cha&icirc;ne
2978     de requ&ecirc;te ne doivent appara&icirc;tre.</em> Pour les requ&ecirc;tes mandat&eacute;es, l'URL
2979     sp&eacute;cifi&eacute;e doit &ecirc;tre de la forme
2980     <code>protocole://nom_serveur/chemin</code>, et vous devez inclure
2981     le pr&eacute;fixe.</p>
2982
2983     <p>L'URL peut contenir des caract&egrave;res g&eacute;n&eacute;riques. Dans une cha&icirc;ne
2984     avec caract&egrave;res g&eacute;n&eacute;riques, <code>?</code> correspond &agrave; un caract&egrave;re
2985     quelconque, et <code>*</code> &agrave; toute cha&icirc;ne de caract&egrave;res. Les
2986     caract&egrave;res g&eacute;n&eacute;riques ne peuvent pas remplacer un / dans le chemin
2987     URL.</p>
2988
2989     <p>On peut aussi utiliser les <glossary ref="regex">Expressions
2990     rationnelles</glossary>, moyennant l'addition d'un caract&egrave;re
2991     <code>~</code>. Par exemple :</p>
2992
2993     <highlight language="config">
2994 &lt;Location ~ "/(extra|special)/data"&gt;
2995     #...
2996 &lt;/Location&gt;
2997 </highlight>
2998
2999     <p>concernerait les URLs contenant les sous-cha&icirc;ne
3000     <code>/extra/data</code> ou <code>/special/data</code>. La directive
3001     <directive type="section" module="core">LocationMatch</directive>
3002     pr&eacute;sente un comportement identique &agrave; la version avec expressions
3003     rationnelles de la directive <directive
3004     type="section">Location</directive>, et son utilisation est
3005     pr&eacute;f&eacute;rable &agrave; l'utilisation de cette derni&egrave;re pour la simple raison
3006     qu'il est difficile de distinguer <code>~</code> de <code>-</code>
3007     dans la plupart des fontes.</p>
3008
3009     <p>La directive <directive type="section">Location</directive>
3010     s'utilise principalement avec la directive <directive
3011     module="core">SetHandler</directive>. Par exemple, pour activer les
3012     requ&ecirc;tes d'&eacute;tat, mais ne les autoriser que depuis des navigateurs
3013     appartenant au domaine <code>example.com</code>, vous pouvez
3014     utiliser :</p>
3015
3016     <highlight language="config">
3017 &lt;Location "/status"&gt;
3018   SetHandler server-status
3019   Require host example.com
3020 &lt;/Location&gt;
3021     </highlight>
3022
3023     <note><title>Note &agrave; propos du slash (/)</title>
3024       <p>La signification du caract&egrave;re slash d&eacute;pend de l'endroit o&ugrave; il
3025       se trouve dans l'URL. Les utilisateurs peuvent &ecirc;tre habitu&eacute;s &agrave;
3026       son comportement dans le syst&egrave;me de fichiers o&ugrave; plusieurs slashes
3027       successifs sont souvent r&eacute;duits &agrave; un slash unique (en d'autres
3028       termes, <code>/home///foo</code> est identique &agrave;
3029       <code>/home/foo</code>). Dans l'espace de nommage des URLs, ce
3030       n'est cependant pas toujours le cas. Pour la directive <directive
3031       type="section" module="core">LocationMatch</directive> et la
3032       version avec expressions rationnelles de la directive <directive
3033       type="section">Location</directive>, vous devez sp&eacute;cifier
3034       explicitement les slashes multiples si telle est votre
3035       intention.</p>
3036
3037       <p>Par exemple, <code>&lt;LocationMatch "^/abc"&gt;</code> va
3038       correspondre &agrave; l'URL <code>/abc</code> mais pas &agrave; l'URL <code>
3039       //abc</code>. La directive <directive type="section"
3040       >Location</directive> sans expression rationnelle se comporte de
3041       la m&ecirc;me mani&egrave;re lorsqu'elle est utilis&eacute;e pour des requ&ecirc;tes
3042       mandat&eacute;es. Par contre, lorsque la directive <directive
3043       type="section">Location</directive> sans expression rationnelle
3044       est utilis&eacute;e pour des requ&ecirc;tes non mandat&eacute;es, elle fera
3045       correspondre implicitement les slashes multiples &agrave; des slashes
3046       uniques. Par exemple, si vous sp&eacute;cifiez <code>&lt;Location
3047       "/abc/def"&gt;</code>, une requ&ecirc;te de la forme
3048       <code>/abc//def</code> correspondra.</p>
3049     </note>
3050 </usage>
3051 <seealso><a href="../sections.html">Comment fonctionnent les sections
3052 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
3053 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
3054 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te.</seealso>
3055 </directivesynopsis>
3056
3057 <directivesynopsis type="section">
3058 <name>LocationMatch</name>
3059 <description>N'applique les directives contenues qu'aux URLs
3060 correspondant &agrave; une expression rationnelle</description>
3061 <syntax>&lt;LocationMatch
3062     <var>regex</var>&gt; ... &lt;/LocationMatch&gt;</syntax>
3063 <contextlist><context>server config</context><context>virtual
3064 host</context>
3065 </contextlist>
3066
3067 <usage>
3068     <p>La directive <directive type="section">LocationMatch</directive>
3069     limite la port&eacute;e des directives contenues &agrave; l'URL sp&eacute;cifi&eacute;e, de
3070     mani&egrave;re identique &agrave; la directive <directive module="core"
3071     type="section">Location</directive>. Mais son argument permettant de
3072     sp&eacute;cifier les URLs concern&eacute;es est une <glossary
3073     ref="regex">expression rationnelle</glossary> au lieu d'une simple
3074     cha&icirc;ne de caract&egrave;res. Par exemple :</p>
3075
3076     <highlight language="config">
3077 &lt;LocationMatch "/(extra|special)/data"&gt;
3078     # ...
3079 &lt;/LocationMatch&gt;
3080 </highlight>
3081
3082     <p>correspondrait &agrave; toute URL contenant les sous-cha&icirc;nes
3083     <code>/extra/data</code> ou <code>/special/data</code>.</p>
3084
3085     <note><p>Si vous recherchez une URL <strong>commen&ccedil;ant par</strong>
3086     plut&ocirc;t que seulement contenant <code>/extra/data</code>, pr&eacute;fixez
3087     l'expression rationnelle avec un <code>^</code>.</p>
3088
3089     <highlight language="config">
3090     &lt;LocationMatch "^/(extra|special)/data"&gt;
3091     </highlight>
3092     </note>
3093
3094     <p>A partir de la version 2.4.8, les groupes nomm&eacute;s et les
3095     r&eacute;f&eacute;rences arri&egrave;res sont extraits et enregistr&eacute;s dans
3096     l'environnement avec leur nom en majuscules et pr&eacute;fix&eacute;
3097     par "MATCH_". Ceci permet
3098     de r&eacute;f&eacute;rencer des URLs dans des <a href="../expr.html">expressions</a>
3099     ou au sein de modules comme <module>mod_rewrite</module>. Pour
3100     &eacute;viter toute confusion, les r&eacute;f&eacute;rences arri&egrave;res num&eacute;rot&eacute;es (non
3101     nomm&eacute;es) sont ignor&eacute;es. Vous devez utiliser &agrave; la place des groupes
3102     nomm&eacute;s.</p>
3103
3104 <highlight language="config">
3105 &lt;LocationMatch "^/combined/(?&lt;sitename&gt;[^/]+)"&gt;
3106     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
3107 &lt;/LocationMatch&gt;
3108 </highlight>    
3109 </usage>
3110 <seealso><a href="../sections.html">Comment fonctionnent les sections
3111 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
3112 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
3113 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te.</seealso>
3114 </directivesynopsis>
3115
3116 <directivesynopsis>
3117 <name>LogLevel</name>
3118 <description>Contr&ocirc;le la verbosit&eacute; du journal des erreurs</description>
3119 <syntax>LogLevel [<var>module</var>:]<var>niveau</var>
3120     [<var>module</var>:<var>niveau</var>] ...
3121 </syntax>
3122 <default>LogLevel warn</default>
3123 <contextlist><context>server config</context><context>virtual
3124 host</context><context>directory</context>
3125 </contextlist>
3126 <compatibility>La configuration du niveau de journalisation par module
3127 et par r&eacute;pertoire est disponible depuis la version 2.3.6 du serveur HTTP
3128 Apache</compatibility>
3129 <usage>
3130     <p>La directive <directive>LogLevel</directive> permet d'ajuster la
3131     verbosit&eacute; des messages enregistr&eacute;s dans les journaux d'erreur (voir
3132     la directive <directive module="core">ErrorLog</directive>
3133     directive). Les <var>niveau</var>x disponibles sont pr&eacute;sent&eacute;s
3134     ci-apr&egrave;s, par ordre de criticit&eacute; d&eacute;croissante :</p>
3135
3136     <table border="1">
3137     <columnspec><column width=".2"/><column width=".3"/><column width=".5"/>
3138     </columnspec>
3139       <tr>
3140         <th><strong>Niveau</strong> </th>
3141
3142         <th><strong>Description</strong> </th>
3143
3144         <th><strong>Exemple</strong> </th>
3145       </tr>
3146
3147       <tr>
3148         <td><code>emerg</code> </td>
3149
3150         <td>Urgences - le syst&egrave;me est inutilisable.</td>
3151
3152         <td>"Child cannot open lock file. Exiting"</td>
3153       </tr>
3154
3155       <tr>
3156         <td><code>alert</code> </td>
3157
3158         <td>Des mesures doivent &ecirc;tre prises imm&eacute;diatement.</td>
3159
3160         <td>"getpwuid: couldn't determine user name from uid"</td>
3161       </tr>
3162
3163       <tr>
3164         <td><code>crit</code> </td>
3165
3166         <td>Conditions critiques.</td>
3167
3168         <td>"socket: Failed to get a socket, exiting child"</td>
3169       </tr>
3170
3171       <tr>
3172         <td><code>error</code> </td>
3173
3174         <td>Erreurs.</td>
3175
3176         <td>"Premature end of script headers"</td>
3177       </tr>
3178
3179       <tr>
3180         <td><code>warn</code> </td>
3181
3182         <td>Avertissements.</td>
3183
3184         <td>"child process 1234 did not exit, sending another
3185         SIGHUP"</td>
3186       </tr>
3187
3188       <tr>
3189         <td><code>notice</code> </td>
3190
3191         <td>Ev&egrave;nement important mais normal.</td>
3192
3193         <td>"httpd: caught SIGBUS, attempting to dump core in
3194         ..."</td>
3195       </tr>
3196
3197       <tr>
3198         <td><code>info</code> </td>
3199
3200         <td>Informations.</td>
3201
3202         <td>"Server seems busy, (you may need to increase
3203         StartServers, or Min/MaxSpareServers)..."</td>
3204       </tr>
3205
3206       <tr>
3207         <td><code>debug</code> </td>
3208
3209         <td>Messages de d&eacute;bogage.</td>
3210
3211         <td>"Opening config file ..."</td>
3212       </tr>
3213       <tr>
3214         <td><code>trace1</code> </td>
3215
3216         <td>Messages de traces</td>
3217
3218         <td>"proxy: FTP: control connection complete"</td>
3219       </tr>
3220       <tr>
3221         <td><code>trace2</code> </td>
3222
3223         <td>Messages de traces</td>
3224
3225         <td>"proxy: CONNECT: sending the CONNECT request to the remote proxy"</td>
3226       </tr>
3227       <tr>
3228         <td><code>trace3</code> </td>
3229
3230         <td>Messages de traces</td>
3231
3232         <td>"openssl: Handshake: start"</td>
3233       </tr>
3234       <tr>
3235         <td><code>trace4</code> </td>
3236
3237         <td>Messages de traces</td>
3238
3239         <td>"read from buffered SSL brigade, mode 0, 17 bytes"</td>
3240       </tr>
3241       <tr>
3242         <td><code>trace5</code> </td>
3243
3244         <td>Messages de traces</td>
3245
3246         <td>"map lookup FAILED: map=rewritemap key=keyname"</td>
3247       </tr>
3248       <tr>
3249         <td><code>trace6</code> </td>
3250
3251         <td>Messages de traces</td>
3252
3253         <td>"cache lookup FAILED, forcing new map lookup"</td>
3254       </tr>
3255       <tr>
3256         <td><code>trace7</code> </td>
3257
3258         <td>Messages de traces, enregistrement d'une grande quantit&eacute; de
3259         donn&eacute;es</td>
3260
3261         <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3262       </tr>
3263       <tr>
3264         <td><code>trace8</code> </td>
3265
3266         <td>Messages de traces, enregistrement d'une grande quantit&eacute; de
3267         donn&eacute;es</td>
3268
3269         <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3270       </tr>
3271     </table>
3272
3273     <p>Lorsqu'un niveau particulier est sp&eacute;cifi&eacute;, les messages de tous
3274     les autres niveaux de criticit&eacute; sup&eacute;rieure seront aussi enregistr&eacute;s.
3275     <em>Par exemple</em>, si <code>LogLevel info</code> est sp&eacute;cifi&eacute;,
3276     les messages de niveaux <code>notice</code> et <code>warn</code>
3277     seront aussi &eacute;mis.</p>
3278
3279     <p>Il est recommand&eacute; d'utiliser un niveau <code>crit</code> ou
3280     inf&eacute;rieur.</p>
3281
3282     <p>Par exemple :</p>
3283
3284     <highlight language="config">LogLevel notice</highlight>
3285
3286     <note><title>Note</title>
3287       <p>Si la journalisation s'effectue directement dans un fichier,
3288       les messages de niveau <code>notice</code> ne peuvent pas &ecirc;tre
3289       supprim&eacute;s et sont donc toujours journalis&eacute;s. Cependant, ceci ne
3290       s'applique pas lorsque la journalisation s'effectue vers
3291       <code>syslog</code>.</p>
3292     </note>
3293     
3294     <p>Sp&eacute;cifier un niveau sans nom de module va attribuer ce niveau &agrave;
3295     tous les modules. Sp&eacute;cifier un niveau avec nom de module va
3296     attribuer ce niveau &agrave; ce module seulement. Il est possible de
3297     sp&eacute;cifier un module par le nom de son fichier source ou par son
3298     identificateur, avec ou sans le suffixe <code>_module</code>. Les
3299     trois sp&eacute;cifications suivantes sont donc &eacute;quivalentes :</p>
3300
3301     <highlight language="config">
3302 LogLevel info ssl:warn
3303 LogLevel info mod_ssl.c:warn
3304 LogLevel info ssl_module:warn
3305     </highlight>
3306
3307     <p>Il est aussi possible d'attribuer un niveau de journalisation par
3308     r&eacute;pertoire :</p>
3309
3310     <highlight language="config">
3311 LogLevel info
3312 &lt;Directory "/usr/local/apache/htdocs/app"&gt;
3313   LogLevel debug
3314 &lt;/Directory&gt;
3315     </highlight>
3316
3317     <note>
3318         La configuration du niveau de journalisation par r&eacute;pertoire
3319         n'affecte que les messages journalis&eacute;s apr&egrave;s l'interpr&eacute;tation de
3320         la requ&ecirc;te et qui sont associ&eacute;s &agrave; cette derni&egrave;re. Les messages
3321         de journalisation associ&eacute;s au serveur ou &agrave; la connexion ne sont
3322         pas affect&eacute;s. Il est cependant possible d'agir sur ces
3323         derniers &agrave; l'aide de la directive <directive
3324         module="core">LogLevelOverride</directive>.
3325     </note>
3326 </usage>
3327 <seealso><directive module="core">ErrorLog</directive></seealso>
3328 <seealso><directive module="core">ErrorLogFormat</directive></seealso>
3329 <seealso><directive module="core">LogLevelOverride</directive></seealso>
3330 <seealso><a href="../logs.html">Journaux du serveur HTTP Apache</a></seealso>
3331 </directivesynopsis>
3332
3333 <directivesynopsis>
3334 <name>LogLevelOverride</name>
3335 <description>Surcharge la verbosit&eacute; du journal des erreurs pour certains
3336 clients</description>
3337 <syntax>LogLevel <var>ipaddress</var>[/<var>prefixlen</var>]
3338     [<var>module</var>:]<var>level</var> [<var>module</var>:<var>level</var>] ...
3339 </syntax>
3340 <default>non d&eacute;finie</default>
3341 <contextlist><context>server config</context><context>virtual host</context>
3342 </contextlist>
3343 <compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
3344 Apache.</compatibility>
3345
3346 <usage>
3347     <p>La directive <directive>LogLevelOverride</directive> permet
3348     d'affiner la d&eacute;finition de la directive <directive
3349     module="core">LogLevel</directive> pour les requ&ecirc;tes en provenance
3350     de certaines adresses IP. Il est ainsi possible d'activer une
3351     journalisation d&eacute;taill&eacute;e seulement pour certains clients &agrave; des fins
3352     de test. Les adresses IP sont v&eacute;rifi&eacute;es &agrave; un stade tr&egrave;s pr&eacute;coce du
3353     processus de connexion. Ainsi, la directive
3354     <directive>LogLevelOverride</directive> permet de modifier le niveau
3355     de journalisation pour des processus comme la n&eacute;gociation SSL qui
3356     intervient avant l'&eacute;valuation d'une &eacute;ventuelle directive <directive
3357     module="core">LogLevel</directive> au sein d'un conteneur <directive
3358     type="section" module="core">If</directive>.</p>
3359
3360     <p>La directive <directive>LogLevelOverride</directive> accepte soit
3361     une adresse IP simple, soit une sp&eacute;cification de sous-r&eacute;seau CIDR de
3362     la forme adresse-IP/masque. Pour la syntaxe de la sp&eacute;cification du
3363     niveau de journalisation, voir la directive <directive
3364     module="core">LogLevel</directive> directive.</p>
3365
3366     <p>Pour les requ&ecirc;tes concern&eacute;es par une directive
3367     <directive>LogLevelOverride</directive>, les sp&eacute;cifications de
3368     niveau r&eacute;pertoire de la directive <directive
3369     module="core">LogLevel</directive> sont ignor&eacute;es.</p>
3370
3371     <p>Exemples:</p>
3372
3373     <highlight language="config">
3374         LogLevelOverride 192.0.2.0/24 ssl:trace6
3375         LogLevelOverride 192.0.2.7 ssl:trace8
3376     </highlight>
3377
3378     <note>
3379         La directive <directive>LogLevelOverride</directive> n'affecte que les
3380         messages associ&eacute;s &agrave; la requ&ecirc;te ou &agrave; la connexion. Les messages
3381         associ&eacute;s au serveur ne sont pas affect&eacute;s.
3382     </note>
3383
3384 </usage>
3385 <seealso><directive module="core">LogLevel</directive></seealso>
3386 </directivesynopsis>
3387
3388 <directivesynopsis>
3389 <name>MaxKeepAliveRequests</name>
3390 <description>Nombre de requ&ecirc;tes permises pour une connexion
3391 persistante</description>
3392 <syntax>MaxKeepAliveRequests <var>nombre</var></syntax>
3393 <default>MaxKeepAliveRequests 100</default>
3394 <contextlist><context>server config</context><context>virtual
3395 host</context>
3396 </contextlist>
3397
3398 <usage>
3399     <p>La directive <directive>MaxKeepAliveRequests</directive> permet
3400     de limiter le nombre de requ&ecirc;tes autoris&eacute;es par connexion lorsque
3401     <directive module="core" >KeepAlive</directive> est &agrave; "on". Si sa
3402     valeur est <code>0</code>, le nombre de requ&ecirc;tes autoris&eacute;es est
3403     illimit&eacute;. Il est recommand&eacute; de d&eacute;finir une valeur assez haute pour
3404     des performances du serveur maximales.</p>
3405
3406     <p>Par exemple :</p>
3407
3408     <highlight language="config">MaxKeepAliveRequests 500</highlight>
3409 </usage>
3410 </directivesynopsis>
3411
3412 <directivesynopsis>
3413 <name>MaxRanges</name>
3414 <description>Nombre de segments de donn&eacute;es autoris&eacute; avant le renvoi de
3415 l'int&eacute;gralit&eacute; de la ressource</description>
3416 <syntax>MaxRanges default | unlimited | none | <var>nombre de segments</var></syntax>
3417 <default>MaxRanges 200</default>
3418 <contextlist><context>server config</context><context>virtual host</context>
3419 <context>directory</context>
3420 </contextlist>
3421 <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3422 Apache</compatibility>
3423
3424 <usage>
3425     <p>La directive <directive>MaxRanges</directive> permet de limiter
3426     le nombre de segments de donn&eacute;es que le serveur va renvoyer au
3427     client. Si un nombre de segments plus important est demand&eacute;, la
3428     ressource sera renvoy&eacute;e dans son int&eacute;gralit&eacute;.</p>
3429
3430     <dl>  
3431       <dt><strong>default</strong></dt>
3432       <dd>Limite le nombre de segments de donn&eacute;es &agrave; 200 (valeur par
3433       d&eacute;faut d&eacute;finie &agrave; la compilation).</dd>
3434    
3435       <dt><strong>none</strong></dt>
3436       <dd>Les en-t&ecirc;tes Range sont ignor&eacute;s.</dd>
3437           
3438       <dt><strong>unlimited</strong></dt>
3439       <dd>Le nombre de segments de donn&eacute;es est illimit&eacute;.</dd>
3440
3441       <dt><var>nombre de segments</var></dt>
3442       <dd>Un nombre positif repr&eacute;sentera la nombre de segments de
3443       donn&eacute;es maximal que le serveur renverra au client.</dd>
3444     </dl>
3445 </usage>
3446 </directivesynopsis>
3447
3448 <directivesynopsis>
3449 <name>MaxRangeOverlaps</name>
3450     <description>Nombre de chevauchements de segments de donn&eacute;es autoris&eacute;
3451     (par exemple <code>100-200,150-300</code>) avant le renvoi de la
3452     ressource compl&egrave;te</description>
3453     <syntax>MaxRangeOverlaps default | unlimited | none | <var>nombre de
3454     chevauchements</var></syntax>
3455     <default>MaxRangeOverlaps 20</default>
3456     <contextlist><context>server config</context><context>virtual host</context>
3457         <context>directory</context>
3458     </contextlist>
3459     <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3460     Apache</compatibility>
3461
3462     <usage>
3463         <p>La directive <directive>MaxRangeOverlaps</directive> permet
3464         de limiter le nombre de chevauchements de segments de donn&eacute;es HTTP
3465         autoris&eacute; par le serveur. Si le nombre de
3466         chevauchements de segments demand&eacute; est sup&eacute;rieur au nombre maximal
3467         autoris&eacute;, la ressource sera renvoy&eacute;e dans son int&eacute;gralit&eacute;.</p>
3468
3469         <dl>
3470             <dt><strong>default</strong></dt>
3471             <dd>Limite le nombre de chevauchements de segments &agrave; la valeur
3472             par d&eacute;faut 20 d&eacute;finie &agrave; la compilation.</dd>
3473
3474             <dt><strong>none</strong></dt>
3475             <dd>Aucun chevauchement de segment n'est autoris&eacute;.</dd>
3476
3477             <dt><strong>unlimited</strong></dt>
3478             <dd>Le nombre de chevauchements de segments est illimit&eacute;.</dd>
3479
3480             <dt><var>number-of-ranges</var></dt>
3481             <dd>Un nombre positif repr&eacute;sente le nombre maximal de
3482             chevauchements de segments autoris&eacute; par le serveur.</dd>
3483         </dl>
3484     </usage>
3485 </directivesynopsis>
3486
3487 <directivesynopsis>
3488     <name>MaxRangeReversals</name>
3489     <description>Nombre d'inversions d'ordre autoris&eacute; dans la sp&eacute;cification des
3490     segments de donn&eacute;es (par exemple <code>100-200,50-70</code>) avant le renvoi de la
3491     ressource compl&egrave;te</description>
3492     <syntax>MaxRangeReversals default | unlimited | none | <var>nombre
3493     d'inversions</var></syntax>
3494     <default>MaxRangeReversals 20</default>
3495     <contextlist><context>server config</context><context>virtual host</context>
3496         <context>directory</context>
3497     </contextlist>
3498     <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3499     Apache</compatibility>
3500
3501     <usage>
3502         <p>La directive <directive>MaxRangeReversals</directive> permet
3503         de limiter le nombre d'inversions d'ordre dans la sp&eacute;cification
3504         des segments de donn&eacute;es HTTP
3505         autoris&eacute; par le serveur. Si le nombre
3506         d'inversions demand&eacute; est sup&eacute;rieur au nombre maximal
3507         autoris&eacute;, la ressource sera renvoy&eacute;e dans son int&eacute;gralit&eacute;.</p>
3508
3509         <dl>
3510             <dt><strong>default</strong></dt>
3511             <dd>Limite le nombre d'inversions &agrave; la valeur
3512             par d&eacute;faut 20 d&eacute;finie &agrave; la compilation.</dd>
3513
3514             <dt><strong>none</strong></dt>
3515             <dd>Aucune inversion n'est autoris&eacute;e.</dd>
3516
3517             <dt><strong>unlimited</strong></dt>
3518             <dd>Le nombre d'inversions est illimit&eacute;.</dd>
3519
3520             <dt><var>number-of-ranges</var></dt>
3521             <dd>Un nombre positif repr&eacute;sente le nombre maximal
3522             d'inversions autoris&eacute; par le serveur.</dd>
3523         </dl>
3524     </usage>
3525 </directivesynopsis>
3526
3527 <directivesynopsis>
3528 <name>Mutex</name>
3529 <description>D&eacute;finit les m&eacute;canismes de mutex et le repertoire du fichier
3530 verrou pour tous les mutex ou seulement les mutex sp&eacute;cifi&eacute;s</description>
3531 <syntax>Mutex <var>m&eacute;canisme</var> [default|<var>nom-mutex</var>] ... [OmitPID]</syntax>
3532 <default>Mutex default</default>
3533 <contextlist><context>server config</context></contextlist>
3534 <compatibility>Disponible depuis la version 2.3.4 du serveur HTTP Apache</compatibility>
3535
3536 <usage>
3537     <p>La directive <directive>Mutex</directive> permet de d&eacute;finir le
3538     m&eacute;canisme de mutex, et &eacute;ventuellement le r&eacute;pertoire du fichier
3539     verrou que les modules et httpd utilisent pour s&eacute;rialiser l'acc&egrave;s aux
3540     ressources. Sp&eacute;cifiez <code>default</code> comme second argument
3541     pour modifier la configuration de tous les mutex ; sp&eacute;cifiez un nom
3542     de mutex (voir la table ci-dessous) comme premier argument pour
3543     ne modifier que la configuration de ce mutex.</p>
3544
3545     <p>La directive <directive>Mutex</directive> est typiquement
3546     utilis&eacute;e dans les situations exceptionnelles suivantes :</p>
3547
3548     <ul>
3549         <li>choix d'un autre m&eacute;canisme de mutex lorsque le m&eacute;canisme par
3550         d&eacute;faut s&eacute;lectionn&eacute; par <glossary>APR</glossary> pr&eacute;sente un
3551         probl&egrave;me de fonctionnement ou de performances.</li>
3552
3553         <li>choix d'un autre r&eacute;pertoire utilis&eacute; par les mutex &agrave; base de
3554         fichier lorsque le r&eacute;pertoire par d&eacute;faut ne supporte pas le
3555         verrouillage</li>
3556     </ul>
3557
3558     <note><title>Modules support&eacute;s</title>
3559     <p>Cette directive ne configure que les mutex qui ont &eacute;t&eacute;
3560     enregistr&eacute;s avec le serveur de base via l'API
3561     <code>ap_mutex_register()</code>. Tous les modules fournis avec
3562     httpd supportent la directive <directive>Mutex</directive>, mais il
3563     n'en sera pas forc&eacute;ment de m&ecirc;me pour les modules tiers.
3564     Reportez-vous &agrave; la documentation du module tiers consid&eacute;r&eacute; afin de
3565     d&eacute;terminer le(s) nom(s) de mutex qui pourront &ecirc;tre d&eacute;finis si la
3566     directive est support&eacute;e.</p>
3567     </note>
3568
3569     
3570
3571     <p>Les <em>m&eacute;canismes</em> de mutex disponibles sont les suivants :</p>
3572     <ul>
3573         <li><code>default | yes</code>
3574         <p>C'est l'impl&eacute;mentation du verrouillage par d&eacute;faut, telle
3575         qu'elle est d&eacute;finie par <glossary>APR</glossary>. On peut
3576         afficher l'impl&eacute;mentation du verrouillage par d&eacute;faut via la
3577         commande <program>httpd</program> avec l'option <code>-V</code>.</p></li>
3578
3579         <li><code>none | no</code>
3580         <p>Le mutex est d&eacute;sactiv&eacute;, et cette valeur n'est permise pour un
3581         mutex que si le module indique qu'il s'agit d'un choix valide.
3582         Consultez la documentation du module pour plus d'informations.</p></li>
3583
3584         <li><code>posixsem</code>
3585         <p>Une variante de mutex bas&eacute;e sur un s&eacute;maphore Posix.</p>
3586
3587         <note type="warning"><title>Avertissement</title>
3588         <p>La propri&eacute;t&eacute; du s&eacute;maphore n'est pas restitu&eacute;e si un thread du
3589         processus g&eacute;rant le mutex provoque une erreur de segmentation,
3590         ce qui provoquera un blocage du serveur web.</p>
3591         </note>
3592         </li>
3593
3594         <li><code>sysvsem</code>
3595         <p>Une variante de mutex bas&eacute;e sur un s&eacute;maphore IPC SystemV.</p>
3596
3597         <note type="warning"><title>Avertissement</title>
3598         <p>Il peut arriver que les s&eacute;maphores SysV soient conserv&eacute;s si le
3599         processus se crashe avant que le s&eacute;maphore ne soit supprim&eacute;.</p>
3600         </note>
3601
3602         <note type="warning"><title>S&eacute;curit&eacute;</title>
3603         <p>L'API des s&eacute;maphores permet les attaques par d&eacute;ni de service
3604         par tout programme CGI s'ex&eacute;cutant sous le m&ecirc;me uid que le
3605         serveur web (autrement dit tous les programmes CGI, &agrave; moins que
3606         vous n'utilisiez un programme du style <program>suexec</program>
3607         ou <code>cgiwrapper</code>).</p>
3608         </note>
3609         </li>
3610
3611         <li><code>sem</code>
3612         <p>S&eacute;lection de la "meilleure" impl&eacute;mentation des s&eacute;maphores
3613         disponible ; le choix s'effectue entre les s&eacute;maphores posix et
3614         IPC SystemV, dans cet ordre.</p></li>
3615
3616         <li><code>pthread</code>
3617         <p>Une variante de mutex &agrave; base de mutex de thread Posix
3618         inter-processus.</p>
3619
3620         <note type="warning"><title>Avertissement</title>
3621         <p>Sur la plupart des syst&egrave;mes, si un processus enfant se
3622         termine anormalement alors qu'il d&eacute;tenait un mutex qui utilise
3623         cette impl&eacute;mentation, le serveur va se bloquer et cesser de
3624         r&eacute;pondre aux requ&ecirc;tes. Dans ce cas, un red&eacute;marrage manuel est
3625         n&eacute;cessaire pour r&eacute;cup&eacute;rer le mutex.</p>
3626         <p>Solaris constitue une exception notable, en ceci qu'il fournit
3627         un m&eacute;canisme qui permet en g&eacute;n&eacute;ral de r&eacute;cup&eacute;rer le mutex apr&egrave;s
3628         l'arr&ecirc;t anormal d'un processus enfant qui d&eacute;tenait le mutex.</p>
3629         <p>Si votre syst&egrave;me impl&eacute;mente la fonction
3630         <code>pthread_mutexattr_setrobust_np()</code>, vous devriez
3631         pouvoir utiliser l'option <code>pthread</code> sans probl&egrave;me.</p>
3632         </note>
3633         </li>
3634
3635         <li><code>fcntl:/chemin/vers/mutex</code>
3636         <p>Une variante de mutex utilisant un fichier verrou physique et
3637         la fonction <code>fcntl()</code>.</p>
3638
3639         <note type="warning"><title>Avertissement</title>
3640         <p>Lorsqu'on utilise plusieurs mutex bas&eacute;s sur ce m&eacute;canisme dans
3641         un environnement multi-processus, multi-thread, des erreurs de
3642         blocage (EDEADLK) peuvent &ecirc;tre rapport&eacute;es pour des op&eacute;rations de
3643         mutex valides si la fonction <code>fcntl()</code> ne g&egrave;re pas
3644         les threads, comme sous Solaris.</p>
3645         </note>
3646         </li>
3647
3648         <li><code>flock:/chemin/vers/mutex</code>
3649         <p>M&eacute;thode similaire &agrave; <code>fcntl:/chemin/vers/mutex</code>,
3650         mais c'est la fonction <code>flock()</code> qui est utilis&eacute;e
3651         pour g&eacute;rer le verrouillage par fichier.</p></li>
3652
3653         <li><code>file:/chemin/vers/mutex</code>
3654         <p>S&eacute;lection de la "meilleure" impl&eacute;mentation de verrouillage
3655         par fichier disponible ; le choix s'effectue entre
3656         <code>fcntl</code> et <code>flock</code>, dans cet ordre.</p></li>
3657     </ul>
3658
3659     <p>La plupart des m&eacute;canismes ne sont disponibles que sur les
3660     plate-formes o&ugrave; ces derni&egrave;res et <glossary>APR</glossary> les
3661     supportent. Les m&eacute;canismes qui ne sont pas disponibles sur toutes
3662     les plate-formes sont <em>posixsem</em>,
3663     <em>sysvsem</em>, <em>sem</em>, <em>pthread</em>, <em>fcntl</em>, 
3664     <em>flock</em>, et <em>file</em>.</p>
3665
3666     <p>Avec les m&eacute;canismes &agrave; base de fichier <em>fcntl</em> et
3667     <em>flock</em>, le chemin, s'il est fourni, est un r&eacute;pertoire dans
3668     lequel le fichier verrou sera cr&eacute;&eacute;. Le r&eacute;pertoire par d&eacute;faut est le
3669     r&eacute;pertoire d'ex&eacute;cution httpd d&eacute;fini par la directive <directive
3670     module="core">DefaultRuntimeDir</directive>. Si le r&eacute;pertoire
3671     sp&eacute;cifi&eacute; est un chemin relatif, il est relatif au chemin d&eacute;fini par
3672     la directive <directive module="core">DefaultRuntimeDir</directive>.
3673     Utilisez toujours un syst&egrave;me
3674     de fichiers local sur disque pour <code>/chemin/vers/mutex</code> et
3675     jamais un r&eacute;pertoire se trouvant dans un syst&egrave;me de fichiers NFS ou
3676     AFS. Le nom de base du fichier se composera du type de mutex, d'une
3677     cha&icirc;ne optionnelle correspondant &agrave; l'instance et fournie par le
3678     module ; et, sauf si le mot-cl&eacute; <code>OmitPID</code> a &eacute;t&eacute; sp&eacute;cifi&eacute;,
3679     l'identificateur du processus parent httpd sera ajout&eacute; afin de
3680     rendre le nom du fichier unique, &eacute;vitant ainsi tout conflit lorsque
3681     plusieurs instances d'httpd partagent le m&ecirc;me r&eacute;pertoire de
3682     verrouillage. Par exemple, si le nom de mutex est
3683     <code>mpm-accept</code>, et si le r&eacute;pertoire de verrouillage est
3684     <code>/var/httpd/locks</code>, le nom du fichier verrou pour
3685     l'instance httpd dont le processus parent a pour identifiant 12345
3686     sera <code>/var/httpd/locks/mpm-accept.12345</code>.</p>
3687
3688     <note type="warning"><title>S&eacute;curit&eacute;</title>
3689     <p>Il est conseill&eacute; d'<em>&eacute;viter</em> de placer les fichiers mutex
3690     dans un r&eacute;pertoire o&ugrave; tout le monde peut &eacute;crire comme
3691     <code>/var/tmp</code>, car quelqu'un pourrait initier une attaque
3692     par d&eacute;ni de service et emp&ecirc;cher le serveur de d&eacute;marrer en cr&eacute;ant un
3693     fichier verrou poss&eacute;dant un nom identique &agrave; celui que le serveur va
3694     tenter de cr&eacute;er.</p>
3695     </note>
3696
3697     <p>La table suivante d&eacute;crit les noms de mutex utilis&eacute;s par httpd et
3698     ses modules associ&eacute;s.</p>
3699
3700     <table border="1" style="zebra">
3701         <tr>
3702             <th>Nom mutex</th>
3703             <th>Module(s)</th>
3704             <th>Ressource prot&eacute;g&eacute;e</th>
3705         </tr>
3706         <tr>
3707             <td><code>mpm-accept</code></td>
3708             <td>modules MPM <module>prefork</module> et <module>worker</module></td>
3709             <td>connexions entrantes, afin d'&eacute;viter le probl&egrave;me de
3710             l'afflux de requ&ecirc;tes ; pour plus d'informations, voir la
3711             documentation <a
3712             href="../misc/perf-tuning.html">Am&eacute;lioration des
3713             performances</a></td>
3714         </tr>
3715         <tr>
3716             <td><code>authdigest-client</code></td>
3717             <td><module>mod_auth_digest</module></td>
3718             <td>liste de clients en m&eacute;moire partag&eacute;e</td>
3719         </tr>
3720         <tr>
3721             <td><code>authdigest-opaque</code></td>
3722             <td><module>mod_auth_digest</module></td>
3723             <td>compteur en m&eacute;moire partag&eacute;e</td>
3724         </tr>
3725         <tr>
3726             <td><code>ldap-cache</code></td>
3727             <td><module>mod_ldap</module></td>
3728             <td>cache de r&eacute;sultat de recherche LDAP</td>
3729         </tr>
3730         <tr>
3731             <td><code>rewrite-map</code></td>
3732             <td><module>mod_rewrite</module></td>
3733             <td>communication avec des programmes externes
3734             d'associations de valeurs, afin d'&eacute;viter les interf&eacute;rences
3735             d'entr&eacute;es/sorties entre plusieurs requ&ecirc;tes</td>
3736         </tr>
3737         <tr>
3738             <td><code>ssl-cache</code></td>
3739             <td><module>mod_ssl</module></td>
3740             <td>cache de session SSL</td>
3741         </tr>
3742         <tr>
3743             <td><code>ssl-stapling</code></td>
3744             <td><module>mod_ssl</module></td>
3745             <td>cache de l'&eacute;tiquetage OCSP ("OCSP stapling")</td>
3746         </tr>
3747         <tr>
3748             <td><code>watchdog-callback</code></td>
3749             <td><module>mod_watchdog</module></td>
3750             <td>fonction de rappel d'un module client particulier</td>
3751         </tr>
3752     </table>
3753
3754     <p>Le mot-cl&eacute; <code>OmitPID</code> permet d'emp&ecirc;cher l'addition de
3755     l'identifiant du processus httpd parent au nom du fichier verrou.</p>
3756
3757
3758     <p>Dans l'exemple suivant, le m&eacute;canisme de mutex pour le mutex
3759     mpm-accept est modifi&eacute; pour passer du m&eacute;canisme par d&eacute;faut au
3760     m&eacute;canisme <code>fcntl</code>, avec le fichier verrou associ&eacute; cr&eacute;&eacute;
3761     dans le r&eacute;pertoire <code>/var/httpd/locks</code>. Le m&eacute;canisme de
3762     mutex par d&eacute;faut pour tous les autres mutex deviendra
3763     <code>sysvsem</code>.</p>
3764
3765     <highlight language="config">
3766 Mutex sysvsem default
3767 Mutex fcntl:/var/httpd/locks mpm-accept
3768     </highlight>
3769 </usage>
3770 </directivesynopsis>
3771
3772 <directivesynopsis>
3773 <name>NameVirtualHost</name>
3774 <description>OBSOLETE : D&eacute;finit une adresse IP pour les serveurs virtuels &agrave; base de
3775 nom</description>
3776 <syntax>NameVirtualHost <var>adresse</var>[:<var>port</var>]</syntax>
3777 <contextlist><context>server config</context></contextlist>
3778
3779 <usage>
3780
3781     <p>Avant la version 2.3.11, il &eacute;tait n&eacute;cessaire de d&eacute;finir une
3782     directive <directive>NameVirtualHost</directive> pour indiquer au
3783     serveur qu'une paire adresse IP/port particuli&egrave;re pouvait &ecirc;tre
3784     utilis&eacute;e comme serveur virtuel &agrave; base de nom. Depuis la version
3785     2.3.11, chaque fois qu'une paire adresse IP/port est utilis&eacute;e dans
3786     plusieurs serveurs virtuels, l'h&eacute;bergement virtuel &agrave; base de nom est
3787     automatiquement activ&eacute; pour cette adresse.</p>
3788     
3789     <p>Cette directive n'a actuellement plus aucun effet.</p>
3790 </usage>
3791
3792 <seealso><a href="../vhosts/">Documentation sur les serveurs
3793 virtuels</a></seealso>
3794
3795 </directivesynopsis>
3796
3797 <directivesynopsis>
3798 <name>Options</name>
3799 <description>D&eacute;finit les fonctionnalit&eacute;s disponibles pour un r&eacute;pertoire
3800 particulier</description>
3801 <syntax>Options
3802     [+|-]<var>option</var> [[+|-]<var>option</var>] ...</syntax>
3803 <default>Options FollowSymlinks</default>
3804 <contextlist><context>server config</context><context>virtual
3805 host</context>
3806 <context>directory</context><context>.htaccess</context>
3807 </contextlist>
3808 <override>Options</override>
3809 <compatibility>Avec la version 2.3.11, la valeur par d&eacute;faut passe de All
3810 &agrave; FollowSymlinks</compatibility>
3811
3812 <usage>
3813     <p>La directive <directive>Options</directive> permet de d&eacute;finir
3814     les fonctionnalit&eacute;s de serveur disponibles pour un r&eacute;pertoire
3815     particulier.</p>
3816
3817     <p><var>option</var> peut &ecirc;tre d&eacute;fini &agrave; <code>None</code>, auquel
3818     cas aucune fonctionnalit&eacute; sp&eacute;cifique n'est activ&eacute;e, ou comprendre
3819     une ou plusieurs des options suivantes :</p>
3820
3821     <dl>
3822       <dt><code>All</code></dt>
3823
3824       <dd>Toutes les options except&eacute; <code>MultiViews</code>.</dd>
3825
3826       <dt><code>ExecCGI</code></dt>
3827
3828       <dd>L'ex&eacute;cution de scripts CGI &agrave; l'aide du module
3829       <module>mod_cgi</module> est permise.</dd>
3830
3831       <dt><code>FollowSymLinks</code></dt>
3832
3833       <dd>
3834
3835       Le serveur va suivre les liens symboliques dans le r&eacute;pertoire
3836       concern&eacute;. Il s'agit de la valeur par d&eacute;faut.
3837       <note>
3838       <p>Bien que le serveur suive les liens symboliques, il ne modifie
3839       <em>pas</em> le nom de chemin concern&eacute; d&eacute;fini par la section
3840       <directive type="section"
3841       module="core">Directory</directive>.</p>
3842       
3843       <p>Les options <code>FollowSymLinks</code> et
3844       <code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
3845       sections <directive type="section"
3846       module="core">Directory</directive> ou les fichiers
3847       <code>.htaccess</code>.</p>
3848
3849       <p>Le fait d'omettre cette option ne doit pas &ecirc;tre consid&eacute;r&eacute; comme
3850       une mesure de s&eacute;curit&eacute; efficace, car il existe toujours une
3851       situation de comp&eacute;tition (race condition) entre l'instant o&ugrave; l'on
3852       v&eacute;rifie qu'un chemin n'est pas un lien symbolique, et l'instant o&ugrave;
3853       l'on utilise effectivement ce chemin.</p>
3854       </note></dd>
3855
3856       <dt><code>Includes</code></dt>
3857
3858       <dd>
3859       Les inclusions c&ocirc;t&eacute; serveur (SSI) &agrave; l'aide du module
3860       <module>mod_include</module> sont autoris&eacute;es.</dd>
3861
3862       <dt><code>IncludesNOEXEC</code></dt>
3863
3864       <dd>
3865
3866       Les inclusions c&ocirc;t&eacute; serveur (SSI) sont permises, mais <code>#exec
3867       cmd</code> et <code>#exec cgi</code> sont d&eacute;sactiv&eacute;s.
3868       L'utilisation de <code>#include virtual</code> pour les scripts
3869       CGI est cependant toujours possible depuis des r&eacute;pertoires
3870       d&eacute;finis par <directive
3871       module="mod_alias">ScriptAlias</directive>.</dd>
3872
3873       <dt><code>Indexes</code></dt>
3874
3875       <dd>
3876       Si une URL requise correspond au r&eacute;pertoire concern&eacute;, et si aucun
3877       <directive module="mod_dir">DirectoryIndex</directive> (<em>par
3878       exemple</em> <code>index.html</code>) n'est d&eacute;fini pour ce
3879       r&eacute;pertoire, le module <module>mod_autoindex</module> va renvoyer
3880       un listing format&eacute; du r&eacute;pertoire.</dd>
3881
3882       <dt><code>MultiViews</code></dt>
3883
3884       <dd>
3885       Les vues multiples ("multiviews") &agrave; <a
3886       href="../content-negotiation.html">contenu n&eacute;goci&eacute;</a> &agrave; l'aide du
3887       module <module>mod_negotiation</module> sont autoris&eacute;es.
3888       <note><title>Note</title> <p>Cette option est ignor&eacute;e si elle est
3889       d&eacute;finie en tout autre endroit qu'une section <directive
3890       module="core" type="section">Directory</directive>, car
3891       <module>mod_negotiation</module> a besoin de ressources r&eacute;elles
3892       pour effectuer ses comparaisons et ses &eacute;valuations.</p></note>
3893       
3894       </dd>
3895
3896       <dt><code>SymLinksIfOwnerMatch</code></dt>
3897
3898       <dd>Le serveur ne suivra que les liens symboliques qui renvoient
3899       vers un fichier ou un r&eacute;pertoire dont le propri&eacute;taire est le m&ecirc;me
3900       que celui du lien.
3901
3902       <note><title>Note</title>
3903       <p>Les options <code>FollowSymLinks</code> et
3904       <code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
3905       sections <directive type="section"
3906       module="core">Directory</directive> ou les fichiers
3907       <code>.htaccess</code>.</p>
3908
3909       <p>Le fait d'omettre cette option ne doit pas &ecirc;tre consid&eacute;r&eacute; comme
3910       une mesure de s&eacute;curit&eacute; efficace, car il existe toujours une
3911       situation de comp&eacute;tition (race condition) entre l'instant o&ugrave; l'on
3912       v&eacute;rifie qu'un chemin n'est pas un lien symbolique, et l'instant o&ugrave;
3913       l'on utilise effectivement ce chemin.</p>
3914       </note> </dd>
3915     </dl>
3916
3917     <p>Normalement, si plusieurs directives
3918     <directive>Options</directive> peuvent s'appliquer &agrave; un r&eacute;pertoire,
3919     c'est la plus sp&eacute;cifique qui est utilis&eacute;e et les autres sont
3920     ignor&eacute;es ; les options ne sont pas fusionn&eacute;es (voir <a
3921     href="../sections.html#mergin">comment les sections sont
3922     fusionn&eacute;es</a>). Elles le sont cependant si <em>toutes</em> les
3923     options de la directive <directive>Options</directive> sont
3924     pr&eacute;c&eacute;d&eacute;es d'un symbole <code>+</code> ou <code>-</code>. Toute
3925     option pr&eacute;c&eacute;d&eacute;e d'un <code>+</code> est ajout&eacute;e &agrave; la liste des
3926     options courantes de mani&egrave;re forc&eacute;e et toute option pr&eacute;c&eacute;d&eacute;e d'un
3927     <code>-</code> est supprim&eacute;e de la liste des options courantes de la
3928     m&ecirc;me mani&egrave;re.</p>
3929
3930     <note><title>Note</title>
3931     <p>M&eacute;langer des <directive>Options</directive> avec <code>+</code>
3932     ou <code>-</code> avec des <directive>Options</directive> sans
3933     <code>+</code> ou <code>-</code> constitue une erreur de syntaxe, et
3934     la v&eacute;rification de la syntaxe au cours du d&eacute;marrage du serveur fera
3935     &eacute;chouer ce dernier.</p>
3936     </note>
3937
3938     <p>Par exemple, sans aucun symbole <code>+</code> et <code>-</code>
3939     :</p>
3940
3941     <highlight language="config">
3942 &lt;Directory "/web/docs"&gt;
3943   Options Indexes FollowSymLinks
3944 &lt;/Directory&gt;
3945
3946 &lt;Directory "/web/docs/spec"&gt;
3947   Options Includes
3948 &lt;/Directory&gt;
3949     </highlight>
3950
3951     <p>ici, seule l'option <code>Includes</code> sera prise en compte
3952     pour le r&eacute;pertoire <code>/web/docs/spec</code>. Par contre, si la
3953     seconde directive <directive>Options</directive> utilise les
3954     symboles <code>+</code> et <code>-</code> :</p>
3955
3956     <highlight language="config">
3957 &lt;Directory "/web/docs"&gt;
3958   Options Indexes FollowSymLinks
3959 &lt;/Directory&gt;
3960
3961 &lt;Directory "/web/docs/spec"&gt;
3962   Options +Includes -Indexes
3963 &lt;/Directory&gt;
3964     </highlight>
3965
3966     <p>alors, les options <code>FollowSymLinks</code> et
3967     <code>Includes</code> seront prises en compte pour le r&eacute;pertoire
3968     <code>/web/docs/spec</code>.</p>
3969
3970     <note><title>Note</title>
3971       <p>L'utilisation de <code>-IncludesNOEXEC</code> ou
3972       <code>-Includes</code> d&eacute;sactive compl&egrave;tement les inclusions c&ocirc;t&eacute;
3973       serveur sans tenir compte des d&eacute;finitions pr&eacute;c&eacute;dentes.</p>
3974     </note>
3975
3976     <p>En l'absence de toute d&eacute;finition d'options, la valeur par d&eacute;faut
3977     est <code>FollowSymlinks</code>.</p>
3978 </usage>
3979 </directivesynopsis>
3980
3981 <directivesynopsis>
3982 <name>Protocol</name>
3983 <description>Protocole pour une socket d'&eacute;coute</description>
3984 <syntax>Protocol <var>protocole</var></syntax>
3985 <contextlist><context>server config</context><context>virtual host</context></contextlist>
3986 <compatibility>Sous Windows, disponible &agrave; partir de la version 2.3.3 du
3987 serveur HTTP Apache.</compatibility>
3988
3989 <usage>
3990     <p>Cette directive permet de sp&eacute;cifier le protocole utilis&eacute; pour une
3991     socket d'&eacute;coute particuli&egrave;re. Le protocole sert &agrave; d&eacute;terminer quel
3992     module doit traiter une requ&ecirc;te, et d'appliquer les optimisations
3993     sp&eacute;cifiques au protocole via la directive
3994     <directive>AcceptFilter</directive>.</p>
3995
3996     <p>Vous ne devez d&eacute;finir le protocole que si vous travaillez avec
3997     des ports non standards ; dans le cas g&eacute;n&eacute;ral, le protocole
3998     <code>http</code> est associ&eacute; au port 80 et le protocole
3999     <code>https</code> au port 443.</p>
4000
4001     <p>Par exemple, si vous travaillez avec le protocole
4002     <code>https</code> sur un port non standard, sp&eacute;cifiez le protocole
4003     de mani&egrave;re explicite :</p>
4004
4005     <highlight language="config">Protocol https</highlight>
4006
4007     <p>Vous pouvez aussi sp&eacute;cifier le protocole via la directive
4008     <directive module="mpm_common">Listen</directive>.</p>
4009 </usage>
4010 <seealso><directive module="core">AcceptFilter</directive></seealso>
4011 <seealso><directive module="mpm_common">Listen</directive></seealso>
4012 </directivesynopsis>
4013
4014 <directivesynopsis>
4015     <name>Protocols</name>
4016     <description>Protocoles disponibles pour un serveur virtuel ou non</description>
4017     <syntax>Protocols <var>protocole</var> ...</syntax>
4018     <contextlist><context>server config</context><context>virtual host</context></contextlist>
4019     <compatibility>Disponible &agrave; partir de la version 2.4.17 du serveur
4020     HTTP Apache.</compatibility>
4021     
4022     <usage>
4023         <p>Cette directive permet de sp&eacute;cifier la liste des protocoles
4024         support&eacute;s par un serveur virtuel ou non. Cette liste &eacute;num&egrave;re les
4025         protocoles qu'un client sera autoris&eacute; &agrave; n&eacute;gocier avec ce
4026         serveur.</p>
4027         
4028         <p>Vous ne devez fournir cette liste que si vous voulez limiter
4029         les protocoles disponibles pour le serveur. Par d&eacute;faut, tous les
4030         protocoles sont disponibles.</p>
4031         
4032         <p>Par exemple, si vous ne voulez autoriser que le protocole
4033         HTTP/1.1, m&ecirc;me si le protocole HTTP/2 est disponible, utilisez
4034         cette directive comme suit :</p>
4035         
4036         <highlight language="config">
4037             Protocols http/1.1
4038         </highlight>
4039
4040         <p>Les protocoles valides sont <code>http/1.1</code> pour les
4041         connexions http et https, <code>h2</code> pour les connections
4042         https et <code>h2c</code> pour les connexions http. D'autres
4043         modules peuvent fournir d'autres protocoles.</p>
4044         
4045         <p>Sp&eacute;cifier des protocoles non disponibles ou d&eacute;sactiv&eacute;s n'aura
4046         aucun effet, et ceux-ci seront simplement ignor&eacute;s.</p>
4047         
4048         <p>Si un serveur virtuel ne poss&egrave;de pas de directive Protocols
4049         propre, il h&eacute;rite des protocoles sp&eacute;cifi&eacute;s pour le serveur
4050         principal. Autrement dit, les directives Protocols d&eacute;finies au
4051         niveau d'un serveur virtuel remplacent celles d&eacute;finies au niveau
4052         du serveur principal.
4053         </p>
4054
4055     </usage>
4056     <seealso><directive module="core">ProtocolsHonorOrder</directive></seealso>
4057 </directivesynopsis>
4058
4059
4060 <directivesynopsis>
4061     <name>ProtocolsHonorOrder</name>
4062     <description>Protocoles disponibles pour un serveur virtuel ou non</description>
4063     <syntax>ProtocolsHonorOrder On|Off</syntax>
4064     <default>ProtocolsHonorOrder Off</default>
4065     <contextlist><context>server config</context><context>virtual host</context></contextlist>
4066     <compatibility>Disponible &agrave; partir de la version 2.4.17 du serveur
4067     HTTP Apache.</compatibility>
4068     
4069     <usage>
4070         <p>Cette directive permet de d&eacute;finir si le serveur doit tenir
4071         compte de l'ordre des protocoles d&eacute;finis par la directive
4072         <directive>Protocols</directive>.</p>
4073         
4074         <p>Par d&eacute;faut, un client fournit une liste de protocoles
4075         support&eacute;s et le serveur s&eacute;lectionne le premier disponible.</p>
4076         
4077         <p>Si la directive <directive>ProtocolsHonorOrder</directive>
4078         est d&eacute;finie &agrave; <code>on</code>, il n'est pas tenu compte de l'ordre de la liste des
4079         protocoles fournie par le client, et seul l'ordre de la liste des
4080         protocles d&eacute;finie au niveau du serveur influera la n&eacute;gociation
4081         du protocole.</p>
4082         
4083     </usage>
4084     <seealso><directive module="core">Protocols</directive></seealso>
4085 </directivesynopsis>
4086
4087 <directivesynopsis>
4088 <name>RLimitCPU</name>
4089 <description>Limite le temps CPU allou&eacute; aux processus initi&eacute;s par les
4090 processus enfants d'Apache httpd</description>
4091 <syntax>RLimitCPU <var>secondes</var>|max [<var>secondes</var>|max]</syntax>
4092 <default>Non d&eacute;fini ; utilise les valeurs par d&eacute;faut du syst&egrave;me
4093 d'exploitation</default>
4094 <contextlist><context>server config</context><context>virtual
4095 host</context>
4096 <context>directory</context><context>.htaccess</context></contextlist>
4097 <override>All</override>
4098
4099 <usage>
4100     <p>Prend 1 ou 2 param&egrave;tres. Le premier definit la limite de
4101     consommation de ressources pour tous les processus, et le second la
4102     consommation de ressources maximale. Les deux param&egrave;tres peuvent
4103     contenir soit un nombre, soit <code>max</code> pour indiquer au
4104     serveur que la limite de consommation correspond &agrave; la valeur
4105     maximale autoris&eacute;e par la configuration du syst&egrave;me d'exploitation.
4106     Pour augmenter la consommation maximale de ressources, le serveur
4107     doit s'ex&eacute;cuter en tant que <code>root</code>, ou se trouver dans sa
4108     phase de d&eacute;marrage.</p>
4109
4110     <p>Cette directive s'applique aux processus initi&eacute;s par les
4111     processus enfants d'Apache httpd qui traitent les requ&ecirc;tes, et non aux
4112     processus enfants eux-m&ecirc;mes. Sont concern&eacute;s les scripts CGI et les
4113     commandes exec des SSI, mais en aucun cas les processus initi&eacute;s par
4114     le processus parent d'Apache httpd comme les journalisations redirig&eacute;es
4115     vers un programme.</p>
4116
4117     <p>Les limites de ressources CPU sont exprim&eacute;es en secondes par
4118     processus.</p>
4119 </usage>
4120 <seealso><directive module="core">RLimitMEM</directive></seealso>
4121 <seealso><directive module="core">RLimitNPROC</directive></seealso>
4122 </directivesynopsis>
4123
4124 <directivesynopsis>
4125 <name>RLimitMEM</name>
4126 <description>Limite la m&eacute;moire allou&eacute;e aux processus initi&eacute;s par les
4127 processus enfants d'Apache httpd</description>
4128 <syntax>RLimitMEM <var>octets</var>|max [<var>octets</var>|max]</syntax>
4129 <default>Non d&eacute;fini ; utilise les valeurs par d&eacute;faut du syst&egrave;me
4130 d'exploitation</default>
4131 <contextlist><context>server config</context><context>virtual
4132 host</context>
4133 <context>directory</context><context>.htaccess</context></contextlist>
4134 <override>All</override>
4135
4136 <usage>
4137     <p>Prend 1 ou 2 param&egrave;tres. Le premier definit la limite de
4138     consommation de ressources pour tous les processus, et le second la
4139     consommation de ressources maximale. Les deux param&egrave;tres peuvent
4140     contenir soit un nombre, soit <code>max</code> pour indiquer au
4141     serveur que la limite de consommation correspond &agrave; la valeur
4142     maximale autoris&eacute;e par la configuration du syst&egrave;me d'exploitation.
4143     Pour augmenter la consommation maximale de ressources, le serveur
4144     doit s'ex&eacute;cuter en tant que <code>root</code>, ou se trouver dans sa
4145     phase de d&eacute;marrage.</p>
4146
4147     <p>Cette directive s'applique aux processus initi&eacute;s par les
4148     processus enfants d'Apache httpd qui traitent les requ&ecirc;tes, et non aux
4149     processus enfants eux-m&ecirc;mes. Sont concern&eacute;s les scripts CGI et les
4150     commandes exec des SSI, mais en aucun cas les processus initi&eacute;s par
4151     le processus parent d'Apache httpd comme les journalisations redirig&eacute;es
4152     vers un programme.</p>
4153
4154     <p>Les limites de ressources m&eacute;moire sont exprim&eacute;es en octets par
4155     processus.</p>
4156 </usage>
4157 <seealso><directive module="core">RLimitCPU</directive></seealso>
4158 <seealso><directive module="core">RLimitNPROC</directive></seealso>
4159 </directivesynopsis>
4160
4161 <directivesynopsis>
4162 <name>RLimitNPROC</name>
4163 <description>Limite le nombre de processus qui peuvent &ecirc;tre initi&eacute;s par
4164 les processus initi&eacute;s par les processus enfants d'Apache httpd</description>
4165 <syntax>RLimitNPROC <var>nombre</var>|max [<var>nombre</var>|max]</syntax>
4166 <default>Unset; uses operating system defaults</default>
4167 <contextlist><context>server config</context><context>virtual
4168 host</context>
4169 <context>directory</context><context>.htaccess</context></contextlist>
4170 <override>All</override>
4171
4172 <usage>
4173     <p>Prend 1 ou 2 param&egrave;tres. Le premier definit la limite de
4174     consommation de ressources pour tous les processus, et le second la
4175     consommation de ressources maximale. Les deux param&egrave;tres peuvent
4176     contenir soit un nombre, soit <code>max</code> pour indiquer au
4177     serveur que la limite de consommation correspond &agrave; la valeur
4178     maximale autoris&eacute;e par la configuration du syst&egrave;me d'exploitation.
4179     Pour augmenter la consommation maximale de ressources, le serveur
4180     doit s'ex&eacute;cuter en tant que <code>root</code>, ou se trouver dans sa
4181     phase de d&eacute;marrage.</p>
4182
4183     <p>Cette directive s'applique aux processus initi&eacute;s par les
4184     processus enfants d'Apache httpd qui traitent les requ&ecirc;tes, et non aux
4185     processus enfants eux-m&ecirc;mes. Sont concern&eacute;s les scripts CGI et les
4186     commandes exec des SSI, mais en aucun cas les processus initi&eacute;s par
4187     le processus parent d'Apache httpd comme les journalisations redirig&eacute;es
4188     vers un programme.</p>
4189
4190     <p>Les limites des processus contr&ocirc;lent le nombre de processus par
4191     utilisateur.</p>
4192
4193     <note><title>Note</title>
4194       <p>Si les processus CGI s'ex&eacute;cutent sous le m&ecirc;me
4195       utilisateur que celui du serveur web, cette
4196       directive va limiter le nombre de processus que le serveur
4197       pourra lui-m&ecirc;me cr&eacute;er. La pr&eacute;sence de messages
4198       <strong><code>cannot fork</code></strong> dans le journal des
4199       erreurs indiquera que la limite est atteinte.</p>
4200     </note>
4201 </usage>
4202 <seealso><directive module="core">RLimitMEM</directive></seealso>
4203 <seealso><directive module="core">RLimitCPU</directive></seealso>
4204 </directivesynopsis>
4205
4206 <directivesynopsis>
4207 <name>ScriptInterpreterSource</name>
4208 <description>Permet de localiser l'interpr&eacute;teur des scripts
4209 CGI</description>
4210 <syntax>ScriptInterpreterSource Registry|Registry-Strict|Script</syntax>
4211 <default>ScriptInterpreterSource Script</default>
4212 <contextlist><context>server config</context><context>virtual
4213 host</context>
4214 <context>directory</context><context>.htaccess</context></contextlist>
4215 <override>FileInfo</override>
4216 <compatibility>Win32 seulement</compatibility>
4217
4218 <usage>
4219     <p>Cette directive permet de contr&ocirc;ler la m&eacute;thode qu'utilise Apache
4220     httpd pour trouver l'interpr&eacute;teur destin&eacute; &agrave; ex&eacute;cuter les scripts CGI. La
4221     d&eacute;finition par d&eacute;faut est <code>Script</code> : ceci indique &agrave;
4222     Apache httpd qu'il doit utiliser l'interpr&eacute;teur pr&eacute;cis&eacute; dans la ligne
4223     shebang du script (la premi&egrave;re ligne, commen&ccedil;ant par
4224     <code>#!</code>). Sur les syst&egrave;mes Win32, cette ligne ressemble
4225     souvent &agrave; ceci :</p>
4226
4227     <highlight language="perl">#!C:/Perl/bin/perl.exe</highlight>
4228
4229     <p>ou simplement, dans le cas o&ugrave; <code>perl</code> est dans le
4230     <code>PATH</code> :</p>
4231
4232     <highlight language="perl">#!perl</highlight>
4233
4234     <p>Avec <code>ScriptInterpreterSource Registry</code>, Windows va
4235     effectuer une recherche dans l'arborescence
4236     <code>HKEY_CLASSES_ROOT</code> de la base de registre avec comme
4237     mot-cl&eacute; l'extension du fichier contenant le script (par exemple
4238     <code>.pl</code>). C'est la commande d&eacute;finie par la sous-cl&eacute; de
4239     registre <code>Shell\ExecCGI\Command</code> ou, si elle n'existe
4240     pas, la sous-cl&eacute; <code>Shell\Open\Command</code> qui est utilis&eacute;e
4241     pour ouvrir le fichier du script. Si ces cl&eacute;s de registre ne sont
4242     pas trouv&eacute;es, Apache httpd utilise la m&eacute;thode de l'option
4243     <code>Script</code>.</p>
4244
4245     <note type="warning"><title>S&eacute;curit&eacute;</title>
4246     <p>Soyez prudent si vous utilisez <code>ScriptInterpreterSource
4247     Registry</code> avec des r&eacute;pertoires faisant l'objet d'un <directive
4248     module="mod_alias">ScriptAlias</directive>, car Apache httpd va essayer
4249     d'ex&eacute;cuter <strong>tous</strong> les fichiers contenus dans
4250     celui-ci. L'option <code>Registry</code> peut causer des appels de
4251     programmes non voulus sur des fichiers non destin&eacute;s &agrave; &ecirc;tre ex&eacute;cut&eacute;s.
4252     Par exemple, la commande par d&eacute;faut open sur les fichiers
4253     <code>.htm</code> sur la plupart des syst&egrave;mes Windows va lancer
4254     Microsoft Internet Explorer ; ainsi, toute requ&ecirc;te HTTP pour un
4255     fichier <code>.htm</code> situ&eacute; dans le r&eacute;pertoire des scripts
4256     va lancer le navigateur en arri&egrave;re-plan sur le serveur, ce qui a
4257     toutes les chances de crasher votre syst&egrave;me dans les minutes qui
4258     suivent.</p>
4259     </note>
4260
4261     <p>L'option <code>Registry-Strict</code>, apparue avec la version
4262     2.0 du serveur HTTP Apache,
4263     agit de mani&egrave;re identique &agrave; <code>Registry</code>, mais n'utilise
4264     que la sous-cl&eacute; <code>Shell\ExecCGI\Command</code>. La pr&eacute;sence de
4265     la cl&eacute; <code>ExecCGI</code> n'&eacute;tant pas syst&eacute;matique, Elle doit &ecirc;tre
4266     d&eacute;finie manuellement dans le registre Windows et &eacute;vite ainsi tout
4267     appel de programme accidentel sur votre syst&egrave;me.</p>
4268 </usage>
4269 </directivesynopsis>
4270
4271 <directivesynopsis>
4272 <name>SeeRequestTail</name>
4273 <description>D&eacute;termine si mod_status affiche les 63 premiers caract&egrave;res
4274 d'une requ&ecirc;te ou les 63 derniers, en supposant que la requ&ecirc;te
4275 elle-m&ecirc;me poss&egrave;de plus de 63 caract&egrave;res.</description>
4276 <syntax>SeeRequestTail On|Off</syntax>
4277 <default>SeeRequestTail Off</default>
4278 <contextlist><context>server config</context></contextlist>
4279
4280 <usage>
4281     <p>Avec <code>ExtendedStatus On</code>, mod_status affiche la
4282     v&eacute;ritable requ&ecirc;te en cours de traitement. Pour des raisons
4283     historiques, seuls 63 caract&egrave;res de la requ&ecirc;te sont r&eacute;ellement
4284     stock&eacute;s &agrave; des fins d'affichage. Cette directive permet de d&eacute;terminer
4285     si ce sont les 63 premiers caract&egrave;res qui seront stock&eacute;s (c'est le
4286     comportement par d&eacute;faut),
4287     ou si ce sont les 63 derniers. Ceci ne s'applique bien entendu que
4288     si la taille de la requ&ecirc;te est de 64 caract&egrave;res ou plus.</p>
4289
4290     <p>Si Apache httpd traite la requ&ecirc;te <code
4291     >GET&nbsp;/disque1/stockage/apache/htdocs/images/rep-images1/nourriture/pommes.jpg&nbsp;HTTP/1.1</code>
4292     , l'affichage de la requ&ecirc;te par mod_status se pr&eacute;sentera comme suit :
4293     </p>
4294
4295     <table border="1">
4296       <tr>
4297         <th>Off (d&eacute;faut)</th>
4298         <td>GET&nbsp;/disque1/stockage/apache/htdocs/images/rep-images1/nourritu</td>
4299       </tr>
4300       <tr>
4301         <th>On</th>
4302         <td>apache/htdocs/images/rep-images1/nourriture/pommes.jpg&nbsp;HTTP/1.1</td>
4303       </tr>
4304     </table>
4305
4306 </usage>
4307
4308 </directivesynopsis>
4309
4310 <directivesynopsis>
4311 <name>ServerAdmin</name>
4312 <description>L'adresse &eacute;lectronique que le serveur inclut dans les
4313 messages d'erreur envoy&eacute;s au client</description>
4314 <syntax>ServerAdmin <var>adresse &eacute;lectronique</var>|<var>URL</var></syntax>
4315 <contextlist><context>server config</context><context>virtual
4316 host</context>
4317 </contextlist>
4318
4319 <usage>
4320     <p>La directive <directive>ServerAdmin</directive> permet de d&eacute;finir
4321     l'adresse de contact que le serveur va inclure dans tout message
4322     d'erreur qu'il envoie au client. Si le programme <code>httpd</code>
4323     ne reconnait pas l'argument fourni comme une URL, il suppose que
4324     c'est une <var>adresse &eacute;lectronique</var>, et lui ajoute le pr&eacute;fixe
4325     <code>mailto:</code> dans les cibles des hyperliens. Il est
4326     cependant recommand&eacute; d'utiliser exclusivement une adresse
4327     &eacute;lectronique, car de nombreux scripts CGI consid&egrave;rent ceci comme
4328     implicite. Si vous utilisez une URL, elle doit pointer vers un autre
4329     serveur que vous contr&ocirc;lez. Dans le cas contraire, les utilisateurs
4330     seraient dans l'impossibilit&eacute; de vous contacter en cas de probl&egrave;me.</p>
4331
4332     <p>Il peut s'av&eacute;rer utile de d&eacute;finir une adresse d&eacute;di&eacute;e &agrave;
4333     l'administration du serveur, par exemple :</p>
4334
4335     <highlight language="config">ServerAdmin www-admin@foo.example.com</highlight>
4336     <p>car les utilisateurs ne mentionnent pas syst&eacute;matiquement le
4337     serveur dont ils parlent !</p>
4338 </usage>
4339 </directivesynopsis>
4340
4341 <directivesynopsis>
4342 <name>ServerAlias</name>
4343 <description>Autres noms d'un serveur utilisables pour atteindre des
4344 serveurs virtuels &agrave; base de nom</description>
4345 <syntax>ServerAlias <var>nom serveur</var> [<var>nom serveur</var>]
4346 ...</syntax>
4347 <contextlist><context>virtual host</context></contextlist>
4348
4349 <usage>
4350     <p>La directive <directive>ServerAlias</directive> permet de d&eacute;finir
4351     les noms alternatifs d'un serveur utilisables pour atteindre des <a
4352     href="../vhosts/name-based.html">serveurs virtuels &agrave; base de
4353     nom</a>. La directive <directive>ServerAlias</directive> peut
4354     contenir des caract&egrave;res g&eacute;n&eacute;riques, si n&eacute;cessaire.</p>
4355
4356     <highlight language="config">
4357 &lt;VirtualHost *:80&gt;
4358   ServerName server.example.com
4359   ServerAlias server server2.example.com server2
4360   ServerAlias *.example.com
4361   UseCanonicalName Off
4362   # ...
4363 &lt;/VirtualHost&gt;
4364     </highlight>
4365     <p>La recherche du serveur virtuel &agrave; base de nom correspondant au
4366     plus pr&egrave;s &agrave; la requ&ecirc;te s'effectue selon l'ordre d'apparition des
4367     directives <directive type="section"
4368     module="core">virtualhost</directive> dans le fichier de
4369     configuration. Le premier serveur virtuel dont le <directive
4370     module="core">ServerName</directive> ou le <directive
4371     module="core">ServerAlias</directive> correspond est choisi, sans
4372     priorit&eacute; particuli&egrave;re si le nom contient des caract&egrave;res g&eacute;n&eacute;riques
4373     (que ce soit pour ServerName ou ServerAlias).</p>
4374
4375     <p>Tous les noms sp&eacute;cifi&eacute;s au sein d'une section
4376     <directive>VirtualHost</directive> sont trait&eacute;s comme un
4377     <directive>ServerAlias</directive> (sans caract&egrave;res g&eacute;n&eacute;riques).</p>
4378
4379 </usage>
4380 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4381 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4382 du serveur HTTP Apache</a></seealso>
4383 </directivesynopsis>
4384
4385 <directivesynopsis>
4386 <name>ServerName</name>
4387 <description>Nom d'h&ocirc;te et port que le serveur utilise pour
4388 s'authentifier lui-m&ecirc;me</description>
4389 <syntax>ServerName [<var>protocole</var>://]<var>nom de domaine
4390 enti&egrave;rement qualifi&eacute;</var>[:<var>port</var>]</syntax>
4391 <contextlist><context>server config</context><context>virtual
4392 host</context>
4393 </contextlist>
4394
4395 <usage>
4396     <p>La directive <directive>ServerName</directive> permet de d&eacute;finir
4397     les protocole, nom d'h&ocirc;te et port d'une requ&ecirc;te que le serveur
4398     utilise pour s'authentifier lui-m&ecirc;me. Ceci est utile lors de la
4399     cr&eacute;ation de redirections d'URLs.</p>
4400
4401     <p>La directive <directive>ServerName</directive> permet aussi
4402     (&eacute;ventuellement en conjonction avec la directive
4403     <directive>ServerAlias</directive>) d'identifier de mani&egrave;re unique
4404     un serveur virtuel, lorsqu'elle est utilis&eacute;e dans un contexte de <a
4405     href="../vhosts/name-based.html">serveurs virtuels &agrave; base de
4406     noms</a>.</p>
4407     
4408     <p>Par exemple, si le nom de la
4409     machine h&eacute;bergeant le serveur web est
4410     <code>simple.example.com</code>, la machine poss&egrave;de l'alias
4411     DNS <code>www.example.com</code>, et si vous voulez que le serveur
4412     web s'identifie avec cet alias, vous devez utilisez la d&eacute;finition
4413     suivante :</p>
4414
4415     <highlight language="config">ServerName www.example.com</highlight>
4416
4417     <p>La directive <directive>ServerName</directive> peut appara&icirc;tre &agrave;
4418     toutes les &eacute;tapes de la d&eacute;finition du serveur. Toute occurrence
4419     annule cependant la pr&eacute;c&eacute;dente (pour ce serveur).</p>
4420
4421     <p>Si la directive <directive>ServerName</directive> n'est pas
4422     d&eacute;finie, le serveur tente de d&eacute;terminer le nom
4423     d'h&ocirc;te visible du point de vue du client en effectuant
4424     une recherche DNS inverse sur une adresse IP du serveur.</p>
4425     
4426     <p>Si la directive
4427     <directive>ServerName</directive> ne pr&eacute;cise pas de port, le serveur
4428     utilisera celui de la requ&ecirc;te entrante. Il est recommand&eacute; de
4429     sp&eacute;cifier un nom d'h&ocirc;te et un port sp&eacute;cifiques &agrave; l'aide de la
4430     directive <directive>ServerName</directive> pour une fiabilit&eacute;
4431     optimale et &agrave; titre pr&eacute;ventif.</p>
4432
4433     <p>Si vous d&eacute;finissez des <a
4434     href="../vhosts/name-based.html">serveurs virtuels &agrave; base de
4435     nom</a>, une directive <directive>ServerName</directive> situ&eacute;e &agrave;
4436     l'int&eacute;rieur d'une section <directive type="section"
4437     module="core">VirtualHost</directive> sp&eacute;cifiera quel nom d'h&ocirc;te
4438     doit appara&icirc;tre dans l'en-t&ecirc;te de requ&ecirc;te <code>Host:</code> pour
4439     pouvoir atteindre ce serveur virtuel.</p>
4440
4441
4442     <p>Parfois, le serveur s'ex&eacute;cute en amont d'un dispositif qui
4443     impl&eacute;mente SSL, comme un mandataire inverse, un r&eacute;partiteur de
4444     charge ou un bo&icirc;tier d&eacute;di&eacute; SSL. Dans ce cas, sp&eacute;cifiez le protocole
4445     <code>https://</code> et le port auquel les clients se connectent
4446     dans la directive <directive>ServerName</directive>, afin de
4447     s'assurer que le serveur g&eacute;n&egrave;re correctement ses URLs
4448     d'auto-identification.
4449     </p>
4450
4451     <p>Voir la description des directives <directive
4452     module="core">UseCanonicalName</directive> et <directive
4453     module="core">UseCanonicalPhysicalPort</directive> pour les
4454     d&eacute;finitions qui permettent de d&eacute;terminer si les URLs
4455     auto-identifiantes (par exemple via le module
4456     <module>mod_dir</module>) vont faire r&eacute;f&eacute;rence au port sp&eacute;cifi&eacute;, ou
4457     au port indiqu&eacute; dans la requ&ecirc;te du client.
4458     </p>
4459
4460     <note type="warning">
4461     <p>Si la valeur de la directive <directive>ServerName</directive> ne
4462     peut pas &ecirc;tre r&eacute;solue en adresse IP, le d&eacute;marrage du serveur
4463     provoquera un avertissement. <code>httpd</code> va alors utiliser le
4464     r&eacute;sultat de la commande syst&egrave;me <code>hostname</code> pour
4465     d&eacute;terminer le nom du serveur, ce qui ne correspondra pratiquement
4466     jamais au nom de serveur que vous souhaitez r&eacute;ellement.</p>
4467     <example>
4468     httpd: Could not reliably determine the server's fully qualified domain name, using rocinante.local for ServerName
4469     </example>
4470     </note>
4471
4472 </usage>
4473
4474 <seealso><a href="../dns-caveats.html">Probl&egrave;mes concernant le DNS et
4475 le serveur HTTP Apache</a></seealso>
4476 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4477 du serveur HTTP Apache</a></seealso>
4478 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4479 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
4480 <seealso><directive module="core">ServerAlias</directive></seealso>
4481 </directivesynopsis>
4482
4483 <directivesynopsis>
4484 <name>ServerPath</name>
4485 <description>Nom de chemin d'URL h&eacute;rit&eacute; pour un serveur virtuel &agrave; base
4486 de nom acc&eacute;d&eacute; par un navigateur incompatible</description>
4487 <syntax>ServerPath <var>chemin d'URL</var></syntax>
4488 <contextlist><context>virtual host</context></contextlist>
4489
4490 <usage>
4491     <p>La directive <directive>ServerPath</directive> permet de d&eacute;finir
4492     le nom de chemin d'URL h&eacute;rit&eacute; d'un h&ocirc;te, &agrave; utiliser avec les <a
4493     href="../vhosts/">serveurs virtuels &agrave; base de nom</a>.</p>
4494 </usage>
4495 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4496 du serveur HTTP Apache</a></seealso>
4497 </directivesynopsis>
4498
4499 <directivesynopsis>
4500 <name>ServerRoot</name>
4501 <description>Racine du r&eacute;pertoire d'installation du
4502 serveur</description>
4503 <syntax>ServerRoot <var>chemin de r&eacute;pertoire</var></syntax>
4504 <default>ServerRoot /usr/local/apache</default>
4505 <contextlist><context>server config</context></contextlist>
4506
4507 <usage>
4508     <p>La directive <directive>ServerRoot</directive> permet de d&eacute;finir
4509     le r&eacute;pertoire dans lequel le serveur est install&eacute;. En particulier,
4510     il contiendra les sous-r&eacute;pertoires <code>conf/</code> et
4511     <code>logs/</code>. Les chemins relatifs indiqu&eacute;s dans les autres
4512     directives (comme <directive
4513     module="core">Include</directive> ou <directive
4514     module="mod_so">LoadModule</directive>) seront d&eacute;finis par
4515     rapport &agrave; ce r&eacute;pertoire.</p>
4516
4517     <highlight language="config">ServerRoot "/home/httpd"</highlight>
4518
4519     <p>La valeur par d&eacute;faut de <directive>ServerRoot</directive> peut
4520     &ecirc;tre modifi&eacute;e via l'argument <code>--prefix</code> de la commande <a
4521     href="../programs/configure.html"><code>configure</code></a>, et de
4522     nombreuses distributions tierces du serveur proposent une valeur
4523     diff&eacute;rente de celles list&eacute;es ci-dessus.</p>
4524
4525 </usage>
4526 <seealso><a href="../invoking.html">the <code>-d</code>
4527     options de <code>httpd</code></a></seealso>
4528 <seealso><a href="../misc/security_tips.html#serverroot">les conseils &agrave;
4529 propos de s&eacute;curit&eacute;</a> pour des informations sur la mani&egrave;re de d&eacute;finir
4530 correctement les permissions sur le r&eacute;pertoire indiqu&eacute; par la directive
4531 <directive>ServerRoot</directive></seealso>
4532 </directivesynopsis>
4533
4534 <directivesynopsis>
4535 <name>ServerSignature</name>
4536 <description>D&eacute;finit un pied de page pour les documents g&eacute;n&eacute;r&eacute;s par le
4537 serveur</description>
4538 <syntax>ServerSignature On|Off|EMail</syntax>
4539 <default>ServerSignature Off</default>
4540 <contextlist><context>server config</context><context>virtual
4541 host</context>
4542 <context>directory</context><context>.htaccess</context>
4543 </contextlist>
4544 <override>All</override>
4545
4546 <usage>
4547     <p>La directive <directive>ServerSignature</directive> permet de
4548     d&eacute;finir une ligne de pied de page fixe pour les documents g&eacute;n&eacute;r&eacute;s
4549     par le serveur (messages d'erreur, listings de r&eacute;pertoires ftp de
4550     <module>mod_proxy</module>, sorties de <module>mod_info</module>,
4551     etc...). Dans le cas d'une cha&icirc;ne de mandataires, l'utilisateur n'a
4552     souvent aucun moyen de d&eacute;terminer lequel des mandataires cha&icirc;n&eacute;s a
4553     g&eacute;n&eacute;r&eacute; un message d'erreur, et c'est une des raisons pour lesquelles
4554     on peut &ecirc;tre amen&eacute; &agrave; ajouter un tel pied de page.</p>
4555
4556     <p>La valeur par d&eacute;faut <code>Off</code> supprime la ligne de pied
4557     de page (et est ainsi compatible avec le comportement des
4558     versions 1.2 et ant&eacute;rieures d'Apache). la valeur <code>On</code>
4559     ajoute simplement une ligne contenant le num&eacute;ro de version du
4560     serveur ainsi que le nom du serveur virtuel issu de la directive
4561     <directive module="core">ServerName</directive>, alors que la valeur
4562     <code>EMail</code> ajoute en plus une r&eacute;f&eacute;rence "mailto:" &agrave;
4563     l'administrateur du document r&eacute;f&eacute;renc&eacute; issu la directive
4564     <directive module="core">ServerAdmin</directive>.</p>
4565
4566     <p>Apr&egrave;s la version 2.0.44, les d&eacute;tails &agrave; propos du num&eacute;ro de
4567     version du serveur sont contr&ocirc;l&eacute;s &agrave; l'aide de la directive
4568     <directive module="core">ServerTokens</directive>.</p>
4569 </usage>
4570 <seealso><directive module="core">ServerTokens</directive></seealso>
4571 </directivesynopsis>
4572
4573 <directivesynopsis>
4574 <name>ServerTokens</name>
4575 <description>Configure l'en-t&ecirc;te <code>Server</code> de la r&eacute;ponse
4576 HTTP</description>
4577 <syntax>ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full</syntax>
4578 <default>ServerTokens Full</default>
4579 <contextlist><context>server config</context></contextlist>
4580
4581 <usage>
4582     <p>Cette directive permet de contr&ocirc;ler le contenu de l'en-t&ecirc;te
4583     <code>Server</code> inclus dans la r&eacute;ponse envoy&eacute;e au client : cet
4584     en-t&ecirc;te peut contenir le type de syst&egrave;me d'exploitation du serveur,
4585     ainsi que des informations &agrave; propos des modules compil&eacute;s avec le
4586     serveur.</p>
4587
4588     <dl>
4589         <dt><code>ServerTokens Full</code> (ou non sp&eacute;cifi&eacute;)</dt>
4590
4591         <dd>Le serveur envoie par exemple : <code>Server: Apache/2.4.2
4592         (Unix) PHP/4.2.2 MyMod/1.2</code></dd>
4593
4594         <dt><code>ServerTokens Prod[uctOnly]</code></dt>
4595
4596       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4597       Apache</code></dd>
4598
4599       <dt><code>ServerTokens Major</code></dt>
4600
4601       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4602       Apache/2</code></dd>
4603
4604       <dt><code>ServerTokens Minor</code></dt>
4605
4606       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4607       Apache/2.4</code></dd>
4608
4609       <dt><code>ServerTokens Min[imal]</code></dt>
4610
4611       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4612       Apache/2.4.2</code></dd>
4613
4614       <dt><code>ServerTokens OS</code></dt>
4615
4616       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4617       Apache/2.4.2 (Unix)</code></dd>
4618
4619       
4620       
4621     </dl>
4622
4623     <p>Cette d&eacute;finition s'applique &agrave; l'ensemble du serveur et ne peut
4624     &ecirc;tre activ&eacute;e ou d&eacute;sactiv&eacute;e pour tel ou tel serveur virtuel.</p>
4625
4626     <p>Dans les versions post&eacute;rieures &agrave; 2.0.44, cette directive contr&ocirc;le
4627     aussi les informations fournies par la directive <directive
4628     module="core">ServerSignature</directive>.</p>
4629
4630     <note>D&eacute;finir <directive>ServerTokens</directive> &agrave; une
4631     valeur inf&eacute;rieure &agrave; <code>minimal</code> n'est pas
4632     recommand&eacute; car le d&eacute;bogage des probl&egrave;mes
4633     interop&eacute;rationnels n'en sera alors que plus difficile. Notez
4634     aussi que la d&eacute;sactivation de l'en-t&ecirc;te Server:
4635     n'am&eacute;liore en rien la s&eacute;curit&eacute; de votre
4636     serveur ; le concept de "s&eacute;curit&eacute; par
4637     l'obscurit&eacute;" est un mythe et conduit &agrave;
4638     une mauvaise perception de ce qu'est la s&eacute;curit&eacute;.</note>
4639
4640
4641 </usage>
4642 <seealso><directive module="core">ServerSignature</directive></seealso>
4643 </directivesynopsis>
4644
4645 <directivesynopsis>
4646 <name>SetHandler</name>
4647 <description>Force le traitement des fichiers sp&eacute;cifi&eacute;s par un
4648 gestionnaire particulier</description>
4649 <syntax>SetHandler <var>nom gestionnaire</var>|None</syntax>
4650 <contextlist><context>server config</context><context>virtual
4651 host</context>
4652 <context>directory</context><context>.htaccess</context>
4653 </contextlist>
4654 <override>FileInfo</override>
4655
4656 <usage>
4657     <p>Lorsqu'elle se situe &agrave; l'int&eacute;rieur d'un fichier
4658     <code>.htaccess</code>, ou d'une section <directive type="section"
4659     module="core">Directory</directive> ou <directive type="section"
4660     module="core">Location</directive>, cette directive force le
4661     traitement de tous les fichiers sp&eacute;cifi&eacute;s par le <a
4662     href="../handler.html">gestionnaire</a> d&eacute;fini par l'argument
4663     <var>nom gestionnaire</var>. Par exemple, dans le cas d'un
4664     r&eacute;pertoire dont vous voulez interpr&eacute;ter le contenu comme des
4665     fichiers de r&egrave;gles d'images cliquables, sans tenir compte des
4666     extensions, vous pouvez ajouter la ligne suivante dans un fichier
4667     <code>.htaccess</code> de ce r&eacute;pertoire :</p>
4668
4669     <highlight language="config">SetHandler imap-file</highlight>
4670
4671     <p>Autre exemple : si vous voulez que le serveur affiche un
4672     compte-rendu d'&eacute;tat chaque fois qu'une URL du type <code>http://nom
4673     serveur/status</code> est appel&eacute;e, vous pouvez ajouter ceci dans
4674     <code>httpd.conf</code> :</p>
4675
4676     <highlight language="config">
4677 &lt;Location "/status"&gt;
4678   SetHandler server-status
4679 &lt;/Location&gt;
4680     </highlight>
4681
4682     <p>Vous pouvez aussi utiliser cette directive pour associer un
4683     gestionnaire &agrave; des fichiers poss&egrave;dant une extension de nom de
4684     fichier particuli&egrave;re. Par exemple :</p>
4685
4686     <highlight language="config">
4687 &lt;FilesMatch "\.php$"&gt;
4688     SetHandler application/x-httpd-php
4689 &lt;/FilesMatch&gt;
4690     </highlight>
4691
4692     <p>Vous pouvez &eacute;craser la d&eacute;finition ant&eacute;rieure d'une directive
4693     <directive>SetHandler</directive> en utilisant la valeur
4694     <code>None</code>.</p>
4695
4696     <note><title>Note</title>
4697     <p>Comme <directive>SetHandler</directive> l'emporte sur la
4698     d&eacute;finition des gestionnaires par d&eacute;faut, le comportement habituel
4699     consistant &agrave; traiter les URLs se terminant par un slash (/) comme
4700     des r&eacute;pertoires ou des fichiers index est d&eacute;sactiv&eacute;.</p></note>
4701 </usage>
4702
4703 <seealso><directive module="mod_mime">AddHandler</directive></seealso>
4704
4705 </directivesynopsis>
4706
4707 <directivesynopsis>
4708 <name>SetInputFilter</name>
4709 <description>D&eacute;finit les filtres par lesquels vont passer les requ&ecirc;tes
4710 client et les donn&eacute;es POST</description>
4711 <syntax>SetInputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4712 <contextlist><context>server config</context><context>virtual
4713 host</context>
4714 <context>directory</context><context>.htaccess</context>
4715 </contextlist>
4716 <override>FileInfo</override>
4717
4718 <usage>
4719     <p>La directive <directive>SetInputFilter</directive> permet de
4720     d&eacute;finir le ou les filtres par lesquels vont passer les requ&ecirc;tes
4721     client et les donn&eacute;es POST au moment o&ugrave; le serveur les re&ccedil;oit. Cette
4722     d&eacute;finition vient en ajout &agrave; tout autre filtre d&eacute;fini en
4723     quelqu'endroit que ce soit, y compris via la directive <directive
4724     module="mod_mime">AddInputFilter</directive>.</p>
4725
4726     <p>Si la directive comporte plusieurs filtres, ils doivent &ecirc;tre
4727     s&eacute;par&eacute;s par des points-virgules, et sp&eacute;cifi&eacute;s selon l'ordre dans
4728     lequel vous souhaitez les voir agir sur les contenus.</p>
4729 </usage>
4730 <seealso>documentation des <a
4731 href="../filter.html">Filtres</a></seealso>
4732 </directivesynopsis>
4733
4734 <directivesynopsis>
4735 <name>SetOutputFilter</name>
4736 <description>D&eacute;finit les filtres par lesquels vont passer les r&eacute;ponses
4737 du serveur</description>
4738 <syntax>SetOutputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4739 <contextlist><context>server config</context><context>virtual
4740 host</context>
4741 <context>directory</context><context>.htaccess</context>
4742 </contextlist>
4743 <override>FileInfo</override>
4744
4745 <usage>
4746     <p>La directive <directive>SetOutputFilter</directive> permet de
4747     d&eacute;finir les filtres par lesquels vont passer les r&eacute;ponses du serveur
4748     avant d'&ecirc;tre envoy&eacute;es au client. Cette d&eacute;finition vient en ajout &agrave;
4749     tout autre filtre d&eacute;fini en quelqu'endroit que ce soit, y compris
4750     via la directive <directive
4751     module="mod_mime">AddOutputFilter</directive>.</p>
4752
4753     <p>Par exemple, la configuration suivante va traiter tous les
4754     fichiers du r&eacute;pertoire <code>/www/data/</code> comme des inclusions
4755     c&ocirc;t&eacute; serveur (SSI) :</p>
4756
4757     <highlight language="config">
4758 &lt;Directory "/www/data/"&gt;
4759   SetOutputFilter INCLUDES
4760 &lt;/Directory&gt;
4761     </highlight>
4762
4763     <p>Si la directive comporte plusieurs filtres, ils doivent &ecirc;tre
4764     s&eacute;par&eacute;s par des points-virgules, et sp&eacute;cifi&eacute;s selon l'ordre dans
4765     lequel vous souhaitez les voir agir sur les contenus.</p>
4766 </usage>
4767 <seealso><a href="../filter.html">Filters</a> documentation</seealso>
4768 </directivesynopsis>
4769
4770 <directivesynopsis>
4771 <name>TimeOut</name>
4772 <description>Temps pendant lequel le serveur va attendre certains
4773 &eacute;v&egrave;nements avant de consid&eacute;rer qu'une requ&ecirc;te a &eacute;chou&eacute;</description>
4774 <syntax>TimeOut <var>secondes</var></syntax>
4775 <default>TimeOut 60</default>
4776 <contextlist><context>server config</context><context>virtual
4777 host</context></contextlist>
4778
4779 <usage>
4780     <p>La directive <directive>TimeOut</directive> permet de d&eacute;finir le
4781     temps maximum pendant lequel Apache httpd va attendre des entr&eacute;es/sorties
4782     selon les circonstances :</p>
4783
4784     <ol>
4785       <li>Lors de la lecture de donn&eacute;es en provenance du client, le
4786       temps maximum jusqu'&agrave; l'arriv&eacute;e d'un paquet TCP si le tampon est
4787       vide.</li>
4788
4789       <li>Lors de l'&eacute;criture de donn&eacute;es destin&eacute;es au client, le temps
4790       maximum jusqu'&agrave; l'arriv&eacute;e de l'accus&eacute;-r&eacute;ception d'un paquet si le
4791       tampon d'envoi est plein.</li>
4792
4793       <li>Avec <module>mod_cgi</module> et <module>mod_cgid</module>, le temps d'attente maximum des
4794       sorties d'un script CGI.</li>
4795
4796       <li>Avec <module>mod_ext_filter</module>, le temps d'attente
4797       maximum des sorties d'un processus de filtrage.</li>
4798
4799       <li>Avec <module>mod_proxy</module>, la valeur du d&eacute;lai par d&eacute;faut
4800       si <directive module="mod_proxy">ProxyTimeout</directive> n'est
4801       pas d&eacute;fini.</li>
4802     </ol>
4803
4804 </usage>
4805 </directivesynopsis>
4806
4807 <directivesynopsis>
4808 <name>TraceEnable</name>
4809 <description>D&eacute;termine le comportement des requ&ecirc;tes
4810 <code>TRACE</code></description>
4811 <syntax>TraceEnable <var>[on|off|extended]</var></syntax>
4812 <default>TraceEnable on</default>
4813 <contextlist><context>server config</context><context>virtual host</context></contextlist>
4814
4815 <usage>
4816     <p>Cette directive l'emporte sur le comportement de
4817     <code>TRACE</code> pour le noyau du serveur et
4818     <module>mod_proxy</module>. La d&eacute;finition par d&eacute;faut
4819     <code>TraceEnable on</code> permet des requ&ecirc;tes <code>TRACE</code>
4820     selon la RFC 2616, qui interdit d'ajouter tout corps &agrave; la requ&ecirc;te.
4821     La d&eacute;finition <code>TraceEnable off</code> indique au noyau du
4822     serveur et &agrave; <module>mod_proxy</module> de retourner un code
4823     d'erreur <code>405</code> (M&eacute;thode non autoris&eacute;e) au client.</p>
4824
4825     <p>En fait, et &agrave; des fins de test et de diagnostic seulement, on
4826     peut autoriser l'ajout d'un corps de requ&ecirc;te &agrave; l'aide de la
4827     d&eacute;finition non standard <code>TraceEnable extended</code>. Le noyau
4828     du serveur (dans le cas d'un serveur d'origine) va limiter la taille
4829     du corps de requ&ecirc;te &agrave; 64k (plus 8k pour les en-t&ecirc;tes de
4830     fractionnement si <code>Transfer-Encoding: chunked</code> est
4831     utilis&eacute;). Le noyau du serveur va reproduire l'ensemble des en-t&ecirc;tes,
4832     y compris les en-t&ecirc;tes de fractionnement avec le corps de la
4833     r&eacute;ponse. Dans le cas d'un serveur mandataire, la taille du corps de
4834     requ&ecirc;te n'est pas limit&eacute;e &agrave; 64k.</p>
4835
4836     <note><title>Note</title>
4837     <p>Bien que certains pr&eacute;tendent le contraire, <code>TRACE</code> ne
4838     constitue pas une vuln&eacute;rabilit&eacute; en mati&egrave;re de s&eacute;curit&eacute;, et il n'y a
4839     aucune raison suffisante pour le d&eacute;sactiver, ce qui rendrait
4840     votre serveur non conforme.</p>
4841     </note>
4842 </usage>
4843 </directivesynopsis>
4844
4845 <directivesynopsis>
4846 <name>UnDefine</name>
4847 <description>Invalide la d&eacute;finition d'une variable</description>
4848 <syntax>UnDefine <var>nom-variable</var></syntax>
4849 <contextlist><context>server config</context>
4850 <context>virtual host</context></contextlist>
4851
4852 <usage>
4853     <p>Annule l'effet d'une directive <directive
4854     module="core">Define</directive> ou d'un argument <code>-D</code> de
4855     <program>httpd</program> en invalidant l'existence de la variable
4856     correspondante.</p>
4857     <p>On peut utiliser cette directive pour inverser l'effet d'une
4858     section <directive module="core" type="section">IfDefine</directive>
4859     sans avoir &agrave; modifier les arguments <code>-D</code> dans les scripts
4860     de d&eacute;marrage.</p>
4861     <p>Si cette directive est d&eacute;finie au sein d'un bloc VirtualHost, les
4862     changements qu'elle induit sont visibles de toute directive
4863     ult&eacute;rieure, au del&agrave; de tout bloc VirtualHost.</p>    
4864 </usage>
4865 </directivesynopsis>
4866
4867 <directivesynopsis>
4868 <name>UseCanonicalName</name>
4869 <description>D&eacute;finit la mani&egrave;re dont le serveur d&eacute;termine son propre nom
4870 et son port</description>
4871 <syntax>UseCanonicalName On|Off|DNS</syntax>
4872 <default>UseCanonicalName Off</default>
4873 <contextlist><context>server config</context><context>virtual
4874 host</context>
4875 <context>directory</context></contextlist>
4876
4877 <usage>
4878     <p>Dans de nombreuses situations, Apache httpd doit construire une URL
4879     <em>auto-identifiante</em> -- c'est &agrave; dire une URL qui fait
4880     r&eacute;f&eacute;rence au serveur lui-m&ecirc;me. Avec <code>UseCanonicalName
4881     On</code>, Apache httpd va utiliser le nom d'h&ocirc;te et le port sp&eacute;cifi&eacute;s par
4882     la directive <directive module="core">ServerName</directive> pour
4883     construire le nom canonique du serveur. Ce nom est utilis&eacute; dans
4884     toutes les URLs auto-identifiantes, et affect&eacute; aux variables
4885     <code>SERVER_NAME</code> et <code>SERVER_PORT</code> dans les
4886     programmes CGI.</p>
4887
4888     <p>Avec <code>UseCanonicalName Off</code>, Apache httpd va construire ses
4889     URLs auto-identifiantes &agrave; l'aide du nom d'h&ocirc;te et du port fournis
4890     par le client, si ce dernier en a fourni un (dans la n&eacute;gative,
4891     Apache utilisera le nom canonique, de la m&ecirc;me mani&egrave;re que
4892     ci-dessus). Ces valeurs sont les m&ecirc;mes que celles qui sont utilis&eacute;es
4893     pour impl&eacute;menter les <a
4894     href="../vhosts/name-based.html">serveurs virtuels &agrave; base de
4895     nom</a>, et sont disponibles avec les m&ecirc;mes clients. De m&ecirc;me, les
4896     variables CGI <code>SERVER_NAME</code> et <code>SERVER_PORT</code>
4897     seront affect&eacute;es des valeurs fournies par le client.</p>
4898
4899     <p>Cette directive peut s'av&eacute;rer utile, par exemple, sur un serveur
4900     intranet auquel les utilisateurs se connectent en utilisant des noms
4901     courts tels que <code>www</code>. Si les utilisateurs tapent un nom
4902     court suivi d'une URL qui fait r&eacute;f&eacute;rence &agrave; un r&eacute;pertoire, comme
4903     <code>http://www/splat</code>, <em>sans le slash terminal</em>, vous
4904     remarquerez qu'Apache httpd va les rediriger vers
4905     <code>http://www.example.com/splat/</code>. Si vous avez activ&eacute;
4906     l'authentification, ceci va obliger l'utilisateur &agrave; s'authentifier
4907     deux fois (une premi&egrave;re fois pour <code>www</code> et une seconde
4908     fois pour <code>www.example.com</code> -- voir <a
4909     href="http://wiki.apache.org/httpd/FAQ#Why_does_Apache_ask_for_my_password_twice_before_serving_a_file.3F">la
4910     foire aux questions sur ce sujet pour plus d'informations</a>).
4911     Par contre, si <directive>UseCanonicalName</directive> est d&eacute;finie &agrave;
4912     <code>Off</code>, Apache httpd redirigera l'utilisateur vers
4913     <code>http://www/splat/</code>.</p>
4914
4915     <p>Pour l'h&eacute;bergement virtuel en masse &agrave; base d'adresse IP, on
4916     utilise une troisi&egrave;me option, <code>UseCanonicalName
4917     DNS</code>, pour supporter les clients anciens qui ne
4918     fournissent pas d'en-t&ecirc;te <code>Host:</code>. Apache httpd effectue alors
4919     une recherche DNS inverse sur l'adresse IP du serveur auquel le
4920     client s'est connect&eacute; afin de construire ses URLs
4921     auto-identifiantes.</p>
4922
4923     <note type="warning"><title>Avertissement</title>
4924     <p>Les programmes CGI risquent d'&ecirc;tre perturb&eacute;s par cette option
4925     s'ils tiennent compte de la variable <code>SERVER_NAME</code>. Le
4926     client est pratiquement libre de fournir la valeur qu'il veut comme
4927     nom d'h&ocirc;te. Mais si le programme CGI n'utilise
4928     <code>SERVER_NAME</code> que pour construire des URLs
4929     auto-identifiantes, il ne devrait pas y avoir de probl&egrave;me.</p>
4930     </note>
4931 </usage>
4932 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
4933 <seealso><directive module="core">ServerName</directive></seealso>
4934 <seealso><directive module="mpm_common">Listen</directive></seealso>
4935 </directivesynopsis>
4936
4937 <directivesynopsis>
4938 <name>UseCanonicalPhysicalPort</name>
4939 <description>D&eacute;finit la mani&egrave;re dont le serveur
4940 d&eacute;termine son propre port</description>
4941 <syntax>UseCanonicalPhysicalPort On|Off</syntax>
4942 <default>UseCanonicalPhysicalPort Off</default>
4943 <contextlist><context>server config</context><context>virtual
4944 host</context>
4945 <context>directory</context></contextlist>
4946
4947 <usage>
4948     <p>Dans de nombreuses situations, Apache httpd doit construire une URL
4949     <em>auto-identifiante</em> -- c'est &agrave; dire une URL qui fait
4950     r&eacute;f&eacute;rence au serveur lui-m&ecirc;me. Avec <code>UseCanonicalPhysicalPort
4951     On</code>, Apache httpd va fournir le num&eacute;ro de port physique r&eacute;el utilis&eacute;
4952     par la requ&ecirc;te en tant que port potentiel, pour construire le port
4953     canonique afin que le serveur puisse alimenter la directive
4954     <directive module="core">UseCanonicalName</directive>. Avec
4955     <code>UseCanonicalPhysicalPort Off</code>, Apache httpd n'utilisera pas le
4956     num&eacute;ro de port physique r&eacute;el, mais au contraire se r&eacute;f&eacute;rera aux
4957     informations de configuration pour construire un num&eacute;ro de port
4958     valide.</p>
4959
4960     <note><title>Note</title>
4961     <p>L'ordre dans lequel s'effectue la recherche quand on utilise le
4962     port physique est le suivant :</p>
4963      <dl>
4964      <dt><code>UseCanonicalName On</code></dt>
4965      <dd>
4966      <ol>
4967       <li>Port indiqu&eacute; dans <directive module="core">Servername</directive></li>
4968       <li>Port physique</li>
4969       <li>Port par d&eacute;faut</li>
4970      </ol>
4971      </dd>
4972      <dt><code>UseCanonicalName Off | DNS</code></dt>
4973      <dd>
4974      <ol>
4975       <li>Port sp&eacute;cifi&eacute; dans l'en-t&ecirc;te <code>Host:</code></li>
4976       <li>Port physique</li>
4977       <li>Port sp&eacute;cifi&eacute; par <directive module="core">Servername</directive></li>
4978       <li>Port par d&eacute;faut</li>
4979      </ol>
4980      </dd>
4981      </dl>
4982
4983     <p>Avec <code>UseCanonicalPhysicalPort Off</code>, on reprend
4984     l'ordre ci-dessus en supprimant "Port physique".</p>
4985     </note>
4986
4987 </usage>
4988 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4989 <seealso><directive module="core">ServerName</directive></seealso>
4990 <seealso><directive module="mpm_common">Listen</directive></seealso>
4991 </directivesynopsis>
4992
4993 <directivesynopsis type="section">
4994 <name>VirtualHost</name>
4995 <description>Contient des directives qui ne s'appliquent qu'&agrave; un nom
4996 d'h&ocirc;te sp&eacute;cifique ou &agrave; une adresse IP</description>
4997 <syntax>&lt;VirtualHost
4998     <var>adresse IP</var>[:<var>port</var>] [<var>adresse
4999     IP</var>[:<var>port</var>]] ...&gt; ...
5000     &lt;/VirtualHost&gt;</syntax>
5001 <contextlist><context>server config</context></contextlist>
5002
5003 <usage>
5004     <p>Les balises <directive type="section">VirtualHost</directive> et
5005     <code>&lt;/VirtualHost&gt;</code> permettent de rassembler un groupe
5006     de directives qui ne s'appliquent qu'&agrave; un serveur virtuel
5007     particulier. Toute directive autoris&eacute;e dans un contexte de serveur
5008     virtuel peut &ecirc;tre utilis&eacute;e. Lorsque le serveur re&ccedil;oit un requ&ecirc;te
5009     pour un document h&eacute;berg&eacute; par un serveur virtuel particulier, il
5010     applique les directives de configuration rassembl&eacute;es dans la section
5011     <directive type="section">VirtualHost</directive>. <var>adresse
5012     IP</var> peut &ecirc;tre une des entit&eacute;s suivantes, &eacute;ventuellement suivies
5013     d'un caract&egrave;re ':' et d'un num&eacute;ro de port (ou *) :</p>
5014
5015     <ul>
5016       <li>L'adresse IP du serveur virtuel ;</li>
5017
5018       <li>Un nom de domaine enti&egrave;rement qualifi&eacute; correspondant &agrave;
5019       l'adresse IP du serveur virtuel (non recommand&eacute;) ;</li>
5020
5021       <li>Le caract&egrave;re <code>*</code>, qui agit comme un
5022       caract&egrave;re g&eacute;n&eacute;rique, et correspond &agrave; toute adresse IP.</li>
5023
5024       <li>La cha&icirc;ne <code>_default_</code>, dont la signification est
5025       identique &agrave; celle du caract&egrave;re <code>*</code></li>
5026
5027     </ul>
5028
5029     <highlight language="config">
5030 &lt;VirtualHost 10.1.2.3:80&gt;
5031   ServerAdmin webmaster@host.example.com
5032   DocumentRoot "/www/docs/host.example.com"
5033   ServerName host.example.com
5034   ErrorLog "logs/host.example.com-error_log"
5035   TransferLog "logs/host.example.com-access_log"
5036 &lt;/VirtualHost&gt;
5037     </highlight>
5038
5039
5040     <p>Les adresses IPv6 doivent &ecirc;tre entour&eacute;es de crochets car dans le
5041     cas contraire, un &eacute;ventuel port optionnel ne pourrait pas &ecirc;tre
5042     d&eacute;termin&eacute;. Voici un exemple de serveur virtuel avec adresse IPv6
5043     :</p>
5044
5045     <highlight language="config">
5046 &lt;VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80&gt;
5047   ServerAdmin webmaster@host.example.com
5048   DocumentRoot "/www/docs/host.example.com"
5049   ServerName host.example.com
5050   ErrorLog "logs/host.example.com-error_log"
5051   TransferLog "logs/host.example.com-access_log"
5052 &lt;/VirtualHost&gt;
5053     </highlight>
5054
5055     <p>Chaque serveur virtuel doit correspondre &agrave; une adresse IP, un
5056     port ou un nom d'h&ocirc;te sp&eacute;cifique ; dans le premier cas, le serveur
5057     doit &ecirc;tre configur&eacute; pour recevoir les paquets IP de plusieurs
5058     adresses (si le serveur n'a qu'une interface r&eacute;seau, on peut
5059     utiliser &agrave; cet effet la commande <code>ifconfig alias</code> -- si
5060     votre syst&egrave;me d'exploitation le permet).</p>
5061
5062     <note><title>Note</title>
5063     <p>L'utilisation de la directive <directive
5064     type="section">VirtualHost</directive> n'affecte en rien les
5065     adresses IP sur lesquelles Apache httpd est en &eacute;coute. Vous devez vous
5066     assurer que les adresses des serveurs virtuels sont bien incluses
5067     dans la liste des adresses pr&eacute;cis&eacute;es par la directive <directive
5068     module="mpm_common">Listen</directive>.</p>
5069     </note>
5070     
5071     <p>Tout bloc <directive
5072     type="section">VirtualHost</directive> doit comporter une directive
5073     <directive module="core">ServerName</directive>. Dans le cas
5074     contraire, le serveur virtuel h&eacute;ritera de la valeur de la directive
5075     <directive module="core">ServerName</directive> issue de la
5076     configuration du serveur principal.</p>
5077
5078     <p>A l'arriv&eacute;e d'une requ&ecirc;te, le serveur tente de la
5079     faire prendre en compte par la section <directive
5080     type="section">VirtualHost</directive> qui correspond le mieux en ne
5081     se basant que sur la paire adresse IP/port. Les cha&icirc;nes sans
5082     caract&egrave;res g&eacute;n&eacute;riques l'emportent sur celles qui en contiennent. Si
5083     aucune correspondance du point de vue de l'adresse IP/port n'est
5084     trouv&eacute;e, c'est la configuration du serveur "principal" qui sera
5085     utilis&eacute;e.</p>
5086     
5087     <p>Si plusieurs serveurs virtuels correspondent du point de vue de
5088     l'adresse IP/port, le serveur s&eacute;lectionne celui qui correspond le
5089     mieux du point de vue du nom d'h&ocirc;te de la requ&ecirc;te. Si aucune
5090     correspondance du point de vue du nom d'h&ocirc;te n'est trouv&eacute;e, c'est le
5091     premier serveur virtuel dont l'adresse IP/port correspond qui sera
5092     utilis&eacute;. Par voie de cons&eacute;quence, le premier serveur virtuel
5093     comportant une certaine paire adresse IP/port est le serveur virtuel
5094     par d&eacute;faut pour cette paire adresse IP/port.</p>
5095
5096     <note type="warning"><title>S&eacute;curit&eacute;</title>
5097     <p>Voir le document sur les <a
5098     href="../misc/security_tips.html">conseils &agrave; propos de s&eacute;curit&eacute;</a>
5099     pour une description d&eacute;taill&eacute;e des raisons pour lesquelles la
5100     s&eacute;curit&eacute; de votre serveur pourrait &ecirc;tre compromise, si le r&eacute;pertoire
5101     contenant les fichiers journaux est inscriptible par tout autre
5102     utilisateur que celui qui d&eacute;marre le serveur.</p>
5103     </note>
5104 </usage>
5105 <seealso><a href="../vhosts/">Documentation des serveurs virtuels
5106 du serveur HTTP Apache</a></seealso>
5107 <seealso><a href="../dns-caveats.html">Probl&egrave;mes concernant le DNS et
5108 le serveur HTTP Apache</a></seealso>
5109 <seealso><a href="../bind.html">D&eacute;finition des adresses et ports
5110 qu'utilise le serveur HTTP Apache</a></seealso>
5111 <seealso><a href="../sections.html">Comment fonctionnent les sections
5112 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
5113 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
5114 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te</seealso>
5115 </directivesynopsis>
5116
5117 <directivesynopsis>
5118 <name>RegisterHttpMethod</name>
5119 <description>Enregistrement de m&eacute;thodes HTTP non standards</description>
5120 <syntax>RegisterHttpMethod <var>m&eacute;thode</var> [<var>m&eacute;thode</var> [...]]</syntax>
5121 <contextlist><context>server config</context></contextlist>
5122
5123 <usage>
5124 <p>Normalement, les m&eacute;thodes HTTP non conformes aux RFCs correspondantes
5125 sont rejet&eacute;es au cours du traitement de la requ&ecirc;te par HTTPD. Pour
5126 &eacute;viter ceci, les modules peuvent enregistrer les m&eacute;thodes HTTP non
5127 standards qu'ils supportent. La directive
5128 <directive>RegisterHttpMethod</directive> permet d'enregistrer de telles
5129 m&eacute;thodes manuellement. Ceci peut s'av&eacute;rer utile si de telle m&eacute;thodes
5130 doivent &ecirc;tre utilis&eacute;es dans un traitement externe, comme un script CGI.</p>
5131 </usage>
5132 </directivesynopsis>
5133
5134 <directivesynopsis>
5135 <name>Warning</name>
5136 <description>Message d'avertissement personnalisable en provenance de
5137 l'interpr&eacute;tation du fichier de configuration</description>
5138 <syntax>Warning <var>message</var></syntax>
5139 <contextlist><context>server config</context><context>virtual host</context>
5140 <context>directory</context><context>.htaccess</context>
5141 </contextlist>
5142 <compatibility>Disponible &agrave; partir de la version 2.5 du serveur HTTP
5143 Apache.</compatibility>
5144
5145 <usage>
5146     <p>Cette directive permet de signaler la d&eacute;tection d'un probl&egrave;me de
5147     configuration en g&eacute;n&eacute;rant un message d'avertissement
5148     personnalisable. L'interpr&eacute;tation du fichier de configuration n'est
5149     pas interrompue. Un exemple typique d'utilisation est la
5150     v&eacute;rification de la d&eacute;finition de certaines options d&eacute;finies par
5151     l'utilisateur, et l'envoi d'un avertissement &eacute;ventuel.</p>
5152
5153     <highlight language="config">
5154 # Exemple
5155 # signale que ReverseProxy n'est pas d&eacute;fini
5156 &lt;IfDefine !ReverseProxy&gt;
5157   Warning "le mandataire inverse n'a pas &eacute;t&eacute; sp&eacute;cifi&eacute;, veuillez corriger
5158   si n&eacute;cessaire"
5159 &lt;/IfDefine&gt;
5160
5161 &lt;IfDefine ReverseProxy&gt;
5162   # d&eacute;finition de la configuration personnalis&eacute;e du mandataire
5163 &lt;/IfDefine&gt;
5164     </highlight>
5165
5166 </usage>
5167 </directivesynopsis>
5168
5169 <directivesynopsis>
5170 <name>MergeTrailers</name>
5171 <description>D&eacute;termine si les donn&eacute;es suppl&eacute;mentaires (trailers) sont
5172 fusionn&eacute;es avec les en-t&ecirc;tes</description>
5173 <syntax>MergeTrailers [on|off]</syntax>
5174 <default>MergeTrailers off</default>
5175 <contextlist><context>server config</context><context>virtual host</context></contextlist>
5176 <compatibility>Disponible &agrave; partir de la version 2.4.11 du serveur HTTP
5177 Apache</compatibility>
5178
5179 <usage>
5180     <p>Cette directive permet de contr&ocirc;ler la fusion des donn&eacute;es HTTP
5181     suppl&eacute;mentaires (trailers) avec la repr&eacute;sentation interne des
5182     en-t&ecirc;tes. Cette fusion intervient lorsque le corps de la requ&ecirc;te a
5183     &eacute;t&eacute; enti&egrave;rement re&ccedil;u, bien longtemps apr&egrave;s que la majeure partie du
5184     traitement des en-t&ecirc;tes ait une chance de pouvoir examiner ou
5185     modifier les en-t&ecirc;tes de la requ&ecirc;te.</p>
5186     <p>Cette option a &eacute;t&eacute; introduite dans un souci de compatibilit&eacute; avec
5187     les versions ant&eacute;rieures &agrave; 2.4.11, o&ugrave; les donn&eacute;es suppl&eacute;mentaires
5188     &eacute;taient syst&eacute;matiquement fusionn&eacute;es avec les en-t&ecirc;tes de la requ&ecirc;te.</p>
5189 </usage>
5190 </directivesynopsis>
5191
5192
5193 </modulesynopsis>