]> granicus.if.org Git - apache/blob - docs/manual/mod/core.xml.fr
xforms
[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: 1674195:1675429 (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 </usage>
2065 </directivesynopsis>
2066 <directivesynopsis>
2067 <name>GprofDir</name>
2068 <description>R&eacute;pertoire dans lequel &eacute;crire les donn&eacute;es de profiling
2069 gmon.out.</description>
2070 <syntax>GprofDir <var>/tmp/gprof/</var>|<var>/tmp/gprof/</var>%</syntax>
2071 <contextlist><context>server config</context><context>virtual host</context>
2072 </contextlist>
2073
2074 <usage>
2075     <p>Lorsque le serveur a &eacute;t&eacute; compil&eacute; avec le support du profiling
2076     gprof, la directive <directive>GprofDir</directive> permet de
2077     sp&eacute;cifier dans quel r&eacute;pertoire les fichiers <code>gmon.out</code>
2078     doivent &ecirc;tre &eacute;crits lorsque le processus s'arr&ecirc;te. Si l'argument se
2079     termine par un caract&egrave;re pourcentage ('%'), des sous-r&eacute;pertoires
2080     sont cr&eacute;&eacute;s pour chaque identifiant de processus.</p>
2081
2082     <p>Cette directive ne fonctionne actuellement qu'avec le MPM
2083     <module>prefork</module>.</p>
2084 </usage>
2085 </directivesynopsis>
2086
2087 <directivesynopsis>
2088 <name>HostnameLookups</name>
2089 <description>Active la recherche DNS sur les adresses IP des
2090 clients</description>
2091 <syntax>HostnameLookups On|Off|Double</syntax>
2092 <default>HostnameLookups Off</default>
2093 <contextlist><context>server config</context><context>virtual
2094 host</context>
2095 <context>directory</context></contextlist>
2096
2097 <usage>
2098     <p>Cette directive active la recherche DNS afin de pouvoir
2099     journaliser les nom d'h&ocirc;tes (et les passer aux programmes CGI et aux
2100     inclusions SSI via la variable <code>REMOTE_HOST</code>). La valeur
2101     <code>Double</code> d&eacute;clenche une double recherche DNS inverse. En
2102     d'autres termes, une fois la recherche inverse effectu&eacute;e, on lance
2103     une recherche directe sur le r&eacute;sultat de cette derni&egrave;re. Au moins
2104     une des adresses IP fournies par la recherche directe doit
2105     correspondre &agrave; l'adresse originale (ce que l'on nomme
2106     <code>PARANOID</code> dans la terminologie "tcpwrappers").</p>
2107
2108     <p>Quelle que soit la configuration, lorsqu'on utilise
2109     <module>mod_authz_host</module> pour contr&ocirc;ler l'acc&egrave;s en fonction
2110     du nom d'h&ocirc;te, une double recherche DNS inverse est effectu&eacute;e,
2111     s&eacute;curit&eacute; oblige. Notez cependant que le r&eacute;sultat de cette double
2112     recherche n'est en g&eacute;n&eacute;ral pas accessible, &agrave; moins que vous n'ayez
2113     sp&eacute;cifi&eacute; <code>HostnameLookups Double</code>. Par exemple, si vous
2114     n'avez sp&eacute;cifi&eacute; que <code>HostnameLookups On</code>, et si une
2115     requ&ecirc;te concerne un objet prot&eacute;g&eacute; par des restrictions en fonction
2116     du nom d'h&ocirc;te, quel que soit le r&eacute;sultat de la double recherche
2117     inverse, les programmes CGI ne recevront que le r&eacute;sultat de la
2118     recherche inverse simple dans la variable
2119     <code>REMOTE_HOST</code>.</p>
2120
2121     <p>La valeur par d&eacute;faut est <code>Off</code> afin de pr&eacute;server le
2122     traffic r&eacute;seau des sites pour lesquels la recherche inverse n'est
2123     pas vraiment n&eacute;cessaire. Cette valeur par d&eacute;faut est aussi b&eacute;n&eacute;fique
2124     pour les utilisateurs finaux car il n'ont ainsi pas &agrave; subir de temps
2125     d'attente suppl&eacute;mentaires dus aux recherches DNS. Les sites
2126     fortement charg&eacute;s devraient laisser cette directive &agrave;
2127     <code>Off</code>, car les recherches DNS peuvent prendre des temps
2128     tr&egrave;s longs. Vous pouvez &eacute;ventuellement utiliser hors ligne
2129     l'utilitaire <program>logresolve</program>, compil&eacute; par d&eacute;faut dans
2130     le sous-r&eacute;pertoire <code>bin</code> de votre r&eacute;pertoire
2131     d'installation, afin de d&eacute;terminer les noms d'h&ocirc;tes associ&eacute;s aux
2132     adresses IP journalis&eacute;es.</p>
2133
2134     <p>Enfin, si vous avez des <a
2135     href="mod_authz_host.html#reqhost">directives Require &agrave; base de
2136     nom</a>, une recherche de nom d'h&ocirc;te sera effectu&eacute;e quelle que soit
2137     la d&eacute;finition de la directive <code>HostnameLookups</code>.</p>
2138 </usage>
2139 </directivesynopsis>
2140
2141 <directivesynopsis type="section">
2142 <name>If</name>
2143 <description>Contient des directives qui ne s'appliquent que si une
2144 condition est satisfaite au cours du traitement d'une
2145 requ&ecirc;te</description>
2146 <syntax>&lt;If <var>expression</var>&gt; ... &lt;/If&gt;</syntax>
2147 <contextlist><context>server config</context><context>virtual
2148 host</context>
2149 <context>directory</context><context>.htaccess</context>
2150 </contextlist>
2151 <override>All</override>
2152
2153 <usage>
2154     <p>La directive <directive type="section">If</directive> &eacute;value une
2155     expression &agrave; la vol&eacute;e, et applique les directives qu'elle contient
2156     si et seulement si l'expression renvoie la valeur "vrai". Par
2157     exemple :</p>
2158
2159     <highlight language="config">&lt;If "-z req('Host')"&gt;</highlight>
2160
2161     <p>serait satisfaite pour les requ&ecirc;tes HTTP/1.0 sans en-t&ecirc;te
2162     <var>Host:</var>. Les expressions peuvent contenir diff&eacute;rents
2163     op&eacute;rateurs de type shell pour la comparaison de cha&icirc;nes
2164     (<code>==</code>, <code>!=</code>, <code>&lt;</code>, ...), la
2165     comparaison d'entiers (<code>-eq</code>, <code>-ne</code>, ...), ou
2166     &agrave; usages divers (<code>-n</code>, <code>-z</code>, <code>-f</code>,
2167     ...). Les expressions rationnelles sont aussi support&eacute;es,</p>
2168
2169     <highlight language="config">&lt;If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/"&gt;</highlight>
2170
2171     <p>ainsi que les comparaison de mod&egrave;les de type shell et de
2172     nombreuses autres op&eacute;rations. Ces op&eacute;rations peuvent &ecirc;tre effectu&eacute;es
2173     sur les en-t&ecirc;tes de requ&ecirc;tes (<code>req</code>), les variables
2174     d'environnement (<code>env</code>), et un grand nombre d'autres
2175     propri&eacute;t&eacute;s. La documentation compl&egrave;te est disponible dans <a
2176     href="../expr.html">Les expressions dans le serveur HTTP Apache</a>.</p>
2177
2178     <p>Cette section de configuration ne peut contenir que des
2179     directives qui supportent le <a
2180     href="directive-dict.html#Context">contexte de r&eacute;pertoire</a>.</p>
2181
2182     <note type="warning">
2183     Certaines variables comme <code>CONTENT_TYPE</code> ainsi que
2184     d'autres en-t&ecirc;tes de r&eacute;ponse ne seront pas disponibles dans ce bloc,
2185     car elle sont d&eacute;finies apr&egrave;s l'&eacute;valuation des conditions &lt;If&gt;.
2186     </note>
2187
2188 </usage>
2189
2190 <seealso><a href="../expr.html">Les expressions dans le serveur HTTP
2191 Apache</a>, pour une r&eacute;f&eacute;rence compl&egrave;te et d'autres exemples.</seealso>
2192 <seealso><directive type="section" module="core">ElseIf</directive></seealso>
2193 <seealso><directive type="section" module="core">Else</directive></seealso>
2194 <seealso><a href="../sections.html">Comment fonctionnent les sections
2195 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
2196 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
2197 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te. Les
2198 directives <directive type="section">If</directive>, <directive
2199 type="section">ElseIf</directive>, et <directive
2200 type="section">Else</directive> s'appliquent en dernier.</seealso>
2201 </directivesynopsis>
2202
2203 <directivesynopsis type="section">
2204 <name>IfDefine</name>
2205 <description>Contient des directives qui ne s'appliqueront que si un
2206 test retourne "vrai" au d&eacute;marrage du serveur</description>
2207 <syntax>&lt;IfDefine [!]<var>param&egrave;tre</var>&gt; ...
2208     &lt;/IfDefine&gt;</syntax>
2209 <contextlist><context>server config</context><context>virtual
2210 host</context>
2211 <context>directory</context><context>.htaccess</context>
2212 </contextlist>
2213 <override>All</override>
2214
2215 <usage>
2216     <p>La section <code>&lt;IfDefine
2217     <var>test</var>&gt;...&lt;/IfDefine&gt;</code> permet de
2218     conf&eacute;rer un caract&egrave;re conditionnel &agrave; un ensemble de directives. Les
2219     directives situ&eacute;es &agrave; l'int&eacute;rieur d'une section <directive
2220     type="section">IfDefine</directive> ne s'appliquent que si
2221     <var>test</var> est vrai. Si <var>test</var> est faux, tout ce qui
2222     se trouve entre les balises de d&eacute;but et de fin est ignor&eacute;.</p>
2223
2224     <p><var>test</var> peut se pr&eacute;senter sous deux formes :</p>
2225
2226     <ul>
2227       <li><var>nom param&egrave;tre</var></li>
2228
2229       <li><code>!</code><var>nom param&egrave;tre</var></li>
2230     </ul>
2231
2232     <p>Dans le premier cas, les directives situ&eacute;es entre les balises de
2233     d&eacute;but et de fin ne s'appliqueront que si le param&egrave;tre nomm&eacute; <var>nom
2234     param&egrave;tre</var> est d&eacute;fini. Le second format inverse le test, et
2235     dans ce cas, les directives ne s'appliqueront que si <var>nom
2236     param&egrave;tre</var> n'est <strong>pas</strong> d&eacute;fini.</p>
2237
2238     <p>L'argument <var>nom param&egrave;tre</var> est une d&eacute;finition qui peut
2239     &ecirc;tre effectu&eacute;e par la ligne de commande
2240     <program>httpd</program> via le param&egrave;tre
2241     <code>-D<var>param&egrave;tre</var></code> au d&eacute;marrage du serveur, ou via la
2242     directive <directive module="core">Define</directive>.</p>
2243
2244     <p>Les sections <directive type="section">IfDefine</directive>
2245     peuvent &ecirc;tre imbriqu&eacute;es, ce qui permet d'impl&eacute;menter un test
2246     multi-param&egrave;tres simple. Exemple :</p>
2247
2248     <example>httpd -DReverseProxy -DUseCache -DMemCache ...</example>
2249     <highlight language="config">
2250 &lt;IfDefine ReverseProxy&gt;
2251   LoadModule proxy_module   modules/mod_proxy.so
2252   LoadModule proxy_http_module   modules/mod_proxy_http.so
2253   &lt;IfDefine UseCache&gt;
2254     LoadModule cache_module   modules/mod_cache.so
2255     &lt;IfDefine MemCache&gt;
2256       LoadModule mem_cache_module   modules/mod_mem_cache.so
2257     &lt;/IfDefine&gt;
2258     &lt;IfDefine !MemCache&gt;
2259       LoadModule cache_disk_module   modules/mod_cache_disk.so
2260     &lt;/IfDefine&gt;
2261   &lt;/IfDefine&gt;
2262 &lt;/IfDefine&gt;
2263     </highlight>
2264 </usage>
2265 </directivesynopsis>
2266
2267 <directivesynopsis type="section">
2268 <name>IfModule</name>
2269 <description>Contient des directives qui ne s'appliquent qu'en fonction
2270 de la pr&eacute;sence ou de l'absence d'un module sp&eacute;cifique</description>
2271 <syntax>&lt;IfModule [!]<var>fichier module</var>|<var>identificateur
2272 module</var>&gt; ... &lt;/IfModule&gt;</syntax>
2273 <contextlist><context>server config</context><context>virtual
2274 host</context>
2275 <context>directory</context><context>.htaccess</context>
2276 </contextlist>
2277 <override>All</override>
2278
2279 <usage>
2280     <p>La section <code>&lt;IfModule
2281     <var>test</var>&gt;...&lt;/IfModule&gt;</code> permet de conf&eacute;rer &agrave;
2282     des directives un caract&egrave;re conditionnel bas&eacute; sur la pr&eacute;sence d'un
2283     module sp&eacute;cifique. Les directives situ&eacute;es dans une section
2284     <directive type="section">IfModule</directive> ne s'appliquent que
2285     si <var>test</var> est vrai. Si <var>test</var> est faux, tout ce
2286     qui se trouve entre les balises de d&eacute;but et de fin est ignor&eacute;.</p>
2287
2288     <p><var>test</var> peut se pr&eacute;senter sous deux formes :</p>
2289
2290     <ul>
2291       <li><var>module</var></li>
2292
2293       <li>!<var>module</var></li>
2294     </ul>
2295
2296     <p>Dans le premier cas, les directives situ&eacute;es entre les balises de
2297     d&eacute;but et de fin ne s'appliquent que si le module <var>module</var>
2298     est pr&eacute;sent -- soit compil&eacute; avec le binaire Apache httpd, soit charg&eacute;
2299     dynamiquement via la directive <directive module="mod_so"
2300     >LoadModule</directive>. Le second format inverse le test, et dans
2301     ce cas, les directives ne s'appliquent que si <var>module</var>
2302     n'est <strong>pas</strong> pr&eacute;sent.</p>
2303
2304     <p>L'argument <var>module</var> peut contenir soit l'identificateur
2305     du module, soit le nom du fichier source du module. Par exemple,
2306     <code>rewrite_module</code> est un identificateur et
2307     <code>mod_rewrite.c</code> le nom du fichier source
2308     correspondant. Si un module comporte plusieurs fichiers sources,
2309     utilisez le nom du fichier qui contient la cha&icirc;ne de caract&egrave;res
2310     <code>STANDARD20_MODULE_STUFF</code>.</p>
2311
2312     <p>Les sections <directive type="section">IfModule</directive>
2313     peuvent &ecirc;tre imbriqu&eacute;es, ce qui permet d'impl&eacute;menter des tests
2314     multi-modules simples.</p>
2315
2316     <note>Cette section ne doit &ecirc;tre utilis&eacute;e que si votre fichier de
2317     configuration ne fonctionne qu'en fonction de la pr&eacute;sence ou de
2318     l'absence d'un module sp&eacute;cifique. D'une mani&egrave;re g&eacute;n&eacute;rale, il n'est
2319     pas n&eacute;cessaire de placer les directives &agrave; l'int&eacute;rieur de sections
2320     <directive type="section">IfModule</directive>.</note>
2321 </usage>
2322 </directivesynopsis>
2323
2324 <directivesynopsis>
2325 <name>Include</name>
2326 <description>Inclut d'autres fichiers de configuration dans un des
2327 fichiers de configuration du serveur</description>
2328 <syntax>Include <var>chemin-fichier</var>|<var>chemin-r&eacute;pertoire</var>|<var>wildcard</var></syntax>
2329 <contextlist><context>server config</context><context>virtual
2330 host</context>
2331 <context>directory</context>
2332 </contextlist>
2333 <compatibility>Utilisation des caract&egrave;res
2334 g&eacute;n&eacute;riques dans la partie chemin depuis la version 2.3.6</compatibility>
2335
2336 <usage>
2337     <p>Cette directive permet l'inclusion d'autres fichiers de
2338     configuration dans un des fichiers de configuration du serveur.</p>
2339
2340     <p>On peut utiliser des caract&egrave;res g&eacute;n&eacute;riques de style Shell
2341     (<code>fnmatch()</code>) aussi bien dans la partie nom de fichier du
2342     chemin que dans la partie r&eacute;pertoires pour inclure plusieurs
2343     fichiers en une
2344     seule fois, selon leur ordre alphab&eacute;tique. De plus, si la directive
2345     <directive>Include</directive> pointe vers un r&eacute;pertoire, Apache
2346     httpd inclura tous les fichiers de ce r&eacute;pertoire et de tous ces
2347     sous-r&eacute;pertoires. L'inclusion de r&eacute;pertoires entiers est cependant
2348     d&eacute;conseill&eacute;e, car il est fr&eacute;quent d'oublier des fichiers
2349     temporaires dans un r&eacute;pertoire, ce qui causerait une erreur
2350     <program>httpd</program> en cas d'inclusion. Pour inclure des
2351     fichiers qui correspondent &agrave; un certain mod&egrave;le, comme *.conf par
2352     exemple, nous vous recommandons d'utiliser plut&ocirc;t la syntaxe avec
2353     caract&egrave;res g&eacute;n&eacute;riques comme ci-dessous.</p>
2354
2355     <p>La directive <directive module="core">Include</directive>
2356     <strong>&eacute;chouera avec un code d'erreur</strong> si une expression
2357    contenant des caract&egrave;res g&eacute;n&eacute;riques ne correspond &agrave; aucun fichier.
2358    Pour ignorer les expressions contenant des caract&egrave;res g&eacute;n&eacute;riques ne
2359    correspondant &agrave; aucun fichier, utilisez la directive <directive
2360    module="core">IncludeOptional</directive>.</p>
2361
2362     <p>Le chemin fichier sp&eacute;cifi&eacute; peut &ecirc;tre soit un chemin absolu, soit
2363     un chemin relatif au r&eacute;pertoire d&eacute;fini par la directive <directive
2364     module="core">ServerRoot</directive>.</p>
2365
2366     <p>Exemples :</p>
2367
2368     <highlight language="config">
2369 Include /usr/local/apache2/conf/ssl.conf
2370 Include /usr/local/apache2/conf/vhosts/*.conf
2371     </highlight>
2372
2373     <p>ou encore, avec des chemins relatifs au r&eacute;pertoire d&eacute;fini par la
2374     directive <directive module="core">ServerRoot</directive> :</p>
2375
2376     <highlight language="config">
2377 Include conf/ssl.conf
2378 Include conf/vhosts/*.conf
2379     </highlight>
2380
2381     <p>On peut aussi ins&eacute;rer des caract&egrave;res g&eacute;n&eacute;riques dans la partie
2382     r&eacute;pertoires du chemin. Dans l'exemple suivant, la directive
2383     &eacute;chouera si aucun sous-r&eacute;pertoire de conf/vhosts ne contient au
2384     moins un fichier *.conf :</p>
2385   
2386     <highlight language="config">Include conf/vhosts/*/*.conf</highlight>
2387
2388     <p>Par contre, dans l'exemple suivant, la directive sera simplement
2389     ignor&eacute;e si aucun sous-r&eacute;pertoire de conf/vhosts ne contient au
2390     moins un fichier *.conf :</p>
2391
2392     <highlight language="config">IncludeOptional conf/vhosts/*/*.conf</highlight>
2393   
2394 </usage>    
2395
2396 <seealso><directive module="core">IncludeOptional</directive></seealso>
2397 <seealso><program>apachectl</program></seealso>
2398 </directivesynopsis>
2399
2400 <directivesynopsis>
2401 <name>IncludeOptional</name>
2402 <description>Inclusion de fichiers dans le fichier de configuration</description>
2403 <syntax>IncludeOptional
2404 <var>chemin-fichier</var>|<var>chemin-r&eacute;pertoire</var>|<var>wildcard</var></syntax>
2405 <contextlist><context>server config</context><context>virtual host</context>
2406 <context>directory</context>
2407 </contextlist>
2408 <compatibility>Disponible &agrave; partir de la version 2.3.6 du serveur HTTP
2409 Apache</compatibility>
2410  
2411 <usage>
2412     <p>Cette directive permet d'inclure des fichiers dans les fichiers
2413     de configuration du serveur. Elle fonctionne de mani&egrave;re identique &agrave;
2414     la directive <directive module="core">Include</directive>, &agrave;
2415     l'exception du fait que si l'expression avec caract&egrave;res g&eacute;n&eacute;riques
2416     wilcard ne correspond &agrave; aucun fichier ou r&eacute;pertoire, elle sera
2417     ignor&eacute;e silencieusement au lieu de causer une erreur.</p>    
2418     
2419 </usage>
2420
2421 <seealso><directive module="core">Include</directive></seealso>
2422 <seealso><program>apachectl</program></seealso>
2423 </directivesynopsis>
2424
2425 <directivesynopsis>
2426 <name>KeepAlive</name>
2427 <description>Active les connexions HTTP persistantes</description>
2428 <syntax>KeepAlive On|Off</syntax>
2429 <default>KeepAlive On</default>
2430 <contextlist><context>server config</context><context>virtual
2431 host</context>
2432 </contextlist>
2433
2434 <usage>
2435     <p>L'extension Keep-Alive de HTTP/1.0 et l'impl&eacute;mentation des
2436     connexions persistantes dans HTTP/1.1 ont rendu possibles des
2437     sessions HTTP de longue dur&eacute;e, ce qui permet de transmettre
2438     plusieurs requ&ecirc;tes via la m&ecirc;me connexion TCP. Dans certains cas, le
2439     gain en rapidit&eacute; pour des documents comportant de nombreuses images
2440     peut atteindre 50%. Pour activer les connexions persistantes,
2441     d&eacute;finissez <code>KeepAlive On</code>.</p>
2442
2443     <p>Pour les clients HTTP/1.0, les connexions persistantes ne seront
2444     mises en oeuvre que si elles ont &eacute;t&eacute; sp&eacute;cialement demand&eacute;es par un
2445     client. De plus, une connexion persistante avec un client HTTP/1.0
2446     ne peut &ecirc;tre utilis&eacute;e que si la taille du contenu est connue
2447     d'avance. Ceci implique que les contenus dynamiques comme les
2448     sorties CGI, les pages SSI, et les listings de r&eacute;pertoires g&eacute;n&eacute;r&eacute;s
2449     par le serveur n'utiliseront en g&eacute;n&eacute;ral pas les connexions
2450     persistantes avec les clients HTTP/1.0. Avec les clients HTTP/1.1,
2451     les connexions persistantes sont utilis&eacute;es par d&eacute;faut, sauf
2452     instructions contraires. Si le client le demande, le transfert par
2453     tron&ccedil;ons de taille fixe (chunked encoding) sera utilis&eacute; afin de
2454     transmettre un contenu de longueur inconnue via une connexion
2455     persistante.</p>
2456
2457     <p>Lorsqu'un client utilise une connexion persistante, elle comptera
2458     pour une seule requ&ecirc;te pour la directive <directive
2459     module="mpm_common">MaxConnectionsPerChild</directive>, quel
2460     que soit le nombre de requ&ecirc;tes transmises via cette connexion.</p>
2461 </usage>
2462
2463 <seealso><directive module="core">MaxKeepAliveRequests</directive></seealso>
2464 </directivesynopsis>
2465
2466 <directivesynopsis>
2467 <name>KeepAliveTimeout</name>
2468 <description>Dur&eacute;e pendant laquelle le serveur va attendre une requ&ecirc;te
2469 avant de fermer une connexion persistante</description>
2470 <syntax>KeepAliveTimeout <var>nombre</var>[ms]</syntax>
2471 <default>KeepAliveTimeout 5</default>
2472 <contextlist><context>server config</context><context>virtual
2473 host</context>
2474 </contextlist>
2475
2476 <usage>
2477     <p>Le nombre de secondes pendant lesquelles Apache httpd va attendre une
2478     requ&ecirc;te avant de fermer la connexion. Le d&eacute;lai peut &ecirc;tre d&eacute;fini en
2479     millisecondes en suffixant sa valeur par ms. La valeur du d&eacute;lai
2480     sp&eacute;cifi&eacute;e par la directive <directive
2481     module="core">Timeout</directive> s'applique d&egrave;s qu'une requ&ecirc;te a
2482     &eacute;t&eacute; re&ccedil;ue.</p>
2483
2484     <p>Donner une valeur trop &eacute;l&eacute;v&eacute;e &agrave;
2485     <directive>KeepAliveTimeout</directive> peut induire des probl&egrave;mes
2486     de performances sur les serveurs fortement charg&eacute;s. Plus le d&eacute;lai
2487     est &eacute;l&eacute;v&eacute;, plus nombreux seront les processus serveur en attente de
2488     requ&ecirc;tes de la part de clients inactifs.</p>
2489
2490     <p>Si la directive <directive>KeepAliveTimeout</directive>
2491     <strong>n'est pas</strong> d&eacute;finie pour un des serveurs virtuels
2492     &agrave; base de nom, c'est le serveur virtuel dont la paire adresse
2493     IP/port correspond le mieux qui sera utilis&eacute;e.</p>
2494 </usage>
2495 </directivesynopsis>
2496
2497 <directivesynopsis type="section">
2498 <name>Limit</name>
2499 <description>Limite les contr&ocirc;les d'acc&egrave;s que la section contient &agrave;
2500 certaines m&eacute;thodes HTTP</description>
2501 <syntax>&lt;Limit <var>m&eacute;thode</var> [<var>m&eacute;thode</var>] ... &gt; ...
2502     &lt;/Limit&gt;</syntax>
2503 <contextlist><context>directory</context><context>.htaccess</context>
2504 </contextlist>
2505 <override>AuthConfig, Limit</override>
2506
2507 <usage>
2508     <p>Les contr&ocirc;les d'acc&egrave;s s'appliquent normalement &agrave;
2509     <strong>toutes</strong> les m&eacute;thodes d'acc&egrave;s, et c'est en g&eacute;n&eacute;ral le
2510     comportement souhait&eacute;. <strong>Dans le cas g&eacute;n&eacute;ral, les directives
2511     de contr&ocirc;le d'acc&egrave;s n'ont pas &agrave; &ecirc;tre plac&eacute;es dans une section
2512     <directive type="section">Limit</directive>.</strong></p>
2513
2514     <p>La directive <directive type="section">Limit</directive> a pour
2515     but de limiter les effets des contr&ocirc;les d'acc&egrave;s aux m&eacute;thodes HTTP
2516     sp&eacute;cifi&eacute;es. Pour toutes les autres m&eacute;thodes, les restrictions
2517     d'acc&egrave;s contenues dans la section <directive
2518     type="section">Limit</directive> <strong>n'auront aucun
2519     effet</strong>. L'exemple suivant n'applique les contr&ocirc;les d'acc&egrave;s
2520     qu'aux m&eacute;thodes <code>POST</code>, <code>PUT</code>, et
2521     <code>DELETE</code>, en laissant les autres m&eacute;thodes sans protection
2522     :</p>
2523
2524     <highlight language="config">
2525 &lt;Limit POST PUT DELETE&gt;
2526   Require valid-user
2527 &lt;/Limit&gt;
2528     </highlight>
2529
2530     <p>La liste des noms de m&eacute;thodes peut contenir une ou plusieurs
2531     valeurs parmi les suivantes : <code>GET</code>, <code>POST</code>,
2532     <code>PUT</code>, <code>DELETE</code>, <code>CONNECT</code>,
2533     <code>OPTIONS</code>, <code>PATCH</code>, <code>PROPFIND</code>,
2534     <code>PROPPATCH</code>, <code>MKCOL</code>, <code>COPY</code>,
2535     <code>MOVE</code>, <code>LOCK</code>, et <code>UNLOCK</code>.
2536     <strong>Le nom de m&eacute;thode est sensible &agrave; la casse.</strong> Si la
2537     valeur <code>GET</code> est pr&eacute;sente, les requ&ecirc;tes <code>HEAD</code>
2538     seront aussi concern&eacute;es. La m&eacute;thode <code>TRACE</code> ne peut pas
2539     &ecirc;tre limit&eacute;e (voir la directive <directive
2540     module="core">TraceEnable</directive>).</p>
2541
2542     <note type="warning">Une section <directive
2543     type="section">LimitExcept</directive> doit toujours &ecirc;tre pr&eacute;f&eacute;r&eacute;e &agrave;
2544     une section <directive type="section">Limit</directive> pour la
2545     restriction d'acc&egrave;s, car une section <directive type="section"
2546     module="core">LimitExcept</directive> fournit une protection contre
2547     les m&eacute;thodes arbitraires.</note>
2548
2549     <p>Les directives <directive type="section">Limit</directive> et
2550     <directive type="section" module="core">LimitExcept</directive>
2551     peuvent &ecirc;tre imbriqu&eacute;es. Dans ce cas, pour chaque niveau des
2552     directives <directive type="section">Limit</directive> ou  <directive
2553     type="section" module="core">LimitExcept</directive>, ces derni&egrave;res
2554     doivent restreindre l'acc&egrave;s pour les m&eacute;thodes auxquelles les
2555     contr&ocirc;les d'acc&egrave;s s'appliquent.</p>
2556
2557     <note type="warning">Lorsqu'on utilise les directives <directive
2558     type="section">Limit</directive> ou <directive
2559     type="section">LimitExcept</directive> avec la directive <directive
2560     module="mod_authz_core">Require</directive>, la premi&egrave;re directive
2561     <directive module="mod_authz_core">Require</directive> dont la
2562     condition est satisfaite autorise la requ&ecirc;te, sans tenir compte de
2563     la pr&eacute;sence d'autres directives <directive
2564     module="mod_authz_core">Require</directive>.</note>
2565
2566     <p>Par exemple, avec la configuration suivante, tous les
2567     utilisateurs seront autoris&eacute;s &agrave; effectuer des requ&ecirc;tes
2568     <code>POST</code>, et la directive <code>Require group
2569     editors</code> sera ignor&eacute;e dans tous les cas :</p>
2570
2571     <highlight language="config">
2572 &lt;LimitExcept GET&gt;
2573   Require valid-user
2574 &lt;/LimitExcept&gt;
2575 &lt;Limit POST&gt;
2576   Require group editors
2577 &lt;/Limit&gt;
2578     </highlight>
2579 </usage>
2580 </directivesynopsis>
2581
2582 <directivesynopsis type="section">
2583 <name>LimitExcept</name>
2584 <description>Applique les contr&ocirc;les d'acc&egrave;s &agrave; toutes les m&eacute;thodes HTTP,
2585 sauf celles qui sont sp&eacute;cifi&eacute;es</description>
2586 <syntax>&lt;LimitExcept <var>m&eacute;thode</var> [<var>m&eacute;thode</var>] ... &gt; ...
2587     &lt;/LimitExcept&gt;</syntax>
2588 <contextlist><context>directory</context><context>.htaccess</context>
2589 </contextlist>
2590 <override>AuthConfig, Limit</override>
2591
2592 <usage>
2593     <p><directive type="section">LimitExcept</directive> et
2594     <code>&lt;/LimitExcept&gt;</code> permettent de regrouper des
2595     directives de contr&ocirc;le d'acc&egrave;s qui s'appliqueront &agrave; toutes les
2596     m&eacute;thodes d'acc&egrave;s HTTP qui ne font <strong>pas</strong> partie de la
2597     liste des arguments ; en d'autres termes, elles ont un comportement
2598     oppos&eacute; &agrave; celui de la section <directive type="section"
2599     module="core">Limit</directive>, et on peut les utiliser pour
2600     contr&ocirc;ler aussi bien les m&eacute;thodes standards que les m&eacute;thodes non
2601     standards ou non reconnues. Voir la documentation de la section
2602     <directive module="core" type="section">Limit</directive> pour plus
2603     de d&eacute;tails.</p>
2604
2605     <p>Par exemple :</p>
2606
2607     <highlight language="config">
2608 &lt;LimitExcept POST GET&gt;
2609   Require valid-user
2610 &lt;/LimitExcept&gt;
2611     </highlight>
2612
2613 </usage>
2614 </directivesynopsis>
2615
2616 <directivesynopsis>
2617 <name>LimitInternalRecursion</name>
2618 <description>D&eacute;termine le nombre maximal de redirections internes et de
2619 sous-requ&ecirc;tes imbriqu&eacute;es</description>
2620 <syntax>LimitInternalRecursion <var>nombre</var> [<var>nombre</var>]</syntax>
2621 <default>LimitInternalRecursion 10</default>
2622 <contextlist><context>server config</context><context>virtual
2623 host</context>
2624 </contextlist>
2625
2626 <usage>
2627     <p>Une redirection interne survient, par exemple, quand on utilise
2628     la directive <directive module="mod_actions">Action</directive> qui
2629     redirige en interne la requ&ecirc;te d'origine vers un script CGI. Une
2630     sous-requ&ecirc;te est le m&eacute;canisme qu'utilise Apache httpd pour d&eacute;terminer ce
2631     qui se passerait pour un URI s'il faisait l'objet d'une requ&ecirc;te. Par
2632     exemple, <module>mod_dir</module> utilise les sous-requ&ecirc;tes pour
2633     rechercher les fichiers list&eacute;s dans la directive <directive
2634     module="mod_dir">DirectoryIndex</directive>.</p>
2635
2636     <p>La directive <directive>LimitInternalRecursion</directive> permet
2637     d'&eacute;viter un crash du serveur d&ucirc; &agrave; un bouclage infini de redirections
2638     internes ou de sous-requ&ecirc;tes. De tels bouclages sont dus en g&eacute;n&eacute;ral
2639     &agrave; des erreurs de configuration.</p>
2640
2641     <p>La directive accepte, comme arguments, deux limites qui sont
2642     &eacute;valu&eacute;es &agrave; chaque requ&ecirc;te. Le premier <var>nombre</var> est le
2643     nombre maximum de redirections internes qui peuvent se succ&eacute;der. Le
2644     second <var>nombre</var> d&eacute;termine la profondeur d'imbrication
2645     maximum des sous-requ&ecirc;tes. Si vous ne sp&eacute;cifiez qu'un seul
2646     <var>nombre</var>, il sera affect&eacute; aux deux limites.</p>
2647
2648     <highlight language="config">LimitInternalRecursion 5</highlight>
2649 </usage>
2650 </directivesynopsis>
2651
2652 <directivesynopsis>
2653 <name>LimitRequestBody</name>
2654 <description>limite la taille maximale du corps de la requ&ecirc;te HTTP
2655 envoy&eacute;e par le client</description>
2656 <syntax>LimitRequestBody <var>octets</var></syntax>
2657 <default>LimitRequestBody 0</default>
2658 <contextlist><context>server config</context><context>virtual
2659 host</context>
2660 <context>directory</context><context>.htaccess</context>
2661 </contextlist>
2662 <override>All</override>
2663
2664 <usage>
2665     <p>Cette directive sp&eacute;cifie la taille maximale autoris&eacute;e pour le
2666     corps d'une requ&ecirc;te ; la valeur de l'argument <var>octets</var> va
2667     de 0 (pour une taille illimit&eacute;e), &agrave; 2147483647 (2Go). Voir la note
2668     ci-dessous pour la limite d'applicabilit&eacute; aux requ&ecirc;tes mandat&eacute;es.</p>
2669
2670     <p>La directive <directive>LimitRequestBody</directive> permet de
2671     d&eacute;finir une limite pour la taille maximale autoris&eacute;e du corps d'une
2672     requ&ecirc;te HTTP en tenant compte du contexte dans lequel la directive
2673     a &eacute;t&eacute; plac&eacute;e (c'est &agrave; dire au niveau du serveur, d'un r&eacute;pertoire,
2674     d'un fichier ou d'une localisation). Si la requ&ecirc;te du client d&eacute;passe
2675     cette limite, le serveur r&eacute;pondra par un message d'erreur et ne
2676     traitera pas la requ&ecirc;te. La taille du corps d'une requ&ecirc;te normale va
2677     varier de mani&egrave;re importante en fonction de la nature de la
2678     ressource et des m&eacute;thodes autoris&eacute;es pour cette derni&egrave;re. Les
2679     scripts CGI utilisent souvent le corps du message pour extraire les
2680     informations d'un formulaire. Les impl&eacute;mentations de la m&eacute;thode
2681     <code>PUT</code> n&eacute;cessitent une valeur au moins aussi &eacute;lev&eacute;e que la
2682     taille maximale des repr&eacute;sentations que le serveur d&eacute;sire accepter
2683     pour cette ressource.</p>
2684
2685     <p>L'administrateur du serveur peut utiliser cette directive pour
2686     contr&ocirc;ler plus efficacement les comportements anormaux des requ&ecirc;tes
2687     des clients, ce qui lui permettra de pr&eacute;venir certaines formes
2688     d'attaques par d&eacute;ni de service.</p>
2689
2690     <p>Si par exemple, vous autorisez le chargement de fichiers vers une
2691     localisation particuli&egrave;re, et souhaitez limiter la taille des
2692     fichiers charg&eacute;s &agrave; 100Ko, vous pouvez utiliser la directive suivante
2693     :</p>
2694
2695     <highlight language="config">LimitRequestBody 102400</highlight>
2696
2697     <note><p>Pour une description d&eacute;taill&eacute;e de la mani&egrave;re dont cette
2698     directive est interpr&eacute;t&eacute;e par les requ&ecirc;tes mandat&eacute;es, voir la
2699     documentation du module <module>mod_proxy</module>.</p>
2700     </note>
2701
2702 </usage>
2703 </directivesynopsis>
2704
2705 <directivesynopsis>
2706 <name>LimitRequestFields</name>
2707 <description>Limite le nombre de champs d'en-t&ecirc;te autoris&eacute;s dans une
2708 requ&ecirc;te HTTP</description>
2709 <syntax>LimitRequestFields <var>nombre</var></syntax>
2710 <default>LimitRequestFields 100</default>
2711 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2712
2713 <usage>
2714     <p><var>nombre</var> est un entier de 0 (nombre de champs illimit&eacute;)
2715     &agrave; 32767. La valeur par d&eacute;faut est d&eacute;finie &agrave; la compilation par la
2716     constante <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 selon la
2717     distribution).</p>
2718
2719     <p>La directive <directive>LimitRequestFields</directive> permet &agrave;
2720     l'administrateur du serveur de modifier le nombre maximum de champs
2721     d'en-t&ecirc;te autoris&eacute;s dans une requ&ecirc;te HTTP. Pour un serveur, cette
2722     valeur doit &ecirc;tre sup&eacute;rieure au nombre de champs qu'une requ&ecirc;te
2723     client normale peut contenir. Le nombre de champs d'en-t&ecirc;te d'une
2724     requ&ecirc;te qu'un client utilise d&eacute;passe rarement 20, mais ce nombre
2725     peut varier selon les impl&eacute;mentations des clients, et souvent en
2726     fonction des extensions que les utilisateurs configurent dans leurs
2727     navigateurs pour supporter la n&eacute;gociation de contenu d&eacute;taill&eacute;e. Les
2728     extensions HTTP optionnelles utilisent souvent les
2729     champs d'en-t&ecirc;te des requ&ecirc;tes.</p>
2730
2731     <p>L'administrateur du serveur peut utiliser cette directive pour
2732     contr&ocirc;ler plus efficacement les comportements anormaux des requ&ecirc;tes
2733     des clients, ce qui lui permettra de pr&eacute;venir certaines formes
2734     d'attaques par d&eacute;ni de service. La valeur sp&eacute;cifi&eacute;e doit &ecirc;tre
2735     augment&eacute;e si les clients standards re&ccedil;oivent une erreur du serveur
2736     indiquant que la requ&ecirc;te comportait un nombre d'en-t&ecirc;tes trop
2737     important.</p>
2738
2739     <p>Par exemple :</p>
2740
2741     <highlight language="config">LimitRequestFields 50</highlight>
2742
2743     <note type="warning"><title>Avertissement</title>
2744      <p>Dans le cas des serveurs virtuels &agrave; base de noms, la valeur de
2745      cette directive est extraite du serveur virtuel par d&eacute;faut (le
2746      premier de la liste) pour la paire adresse IP/port.</p>
2747     </note>
2748
2749 </usage>
2750 </directivesynopsis>
2751
2752 <directivesynopsis>
2753 <name>LimitRequestFieldSize</name>
2754 <description>D&eacute;dinit la taille maximale autoris&eacute;e d'un en-t&ecirc;te de
2755 requ&ecirc;te HTTP</description>
2756 <syntax>LimitRequestFieldSize <var>octets</var></syntax>
2757 <default>LimitRequestFieldSize 8190</default>
2758 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2759
2760 <usage>
2761     <p>Cette directive permet de d&eacute;finir le nombre maximum
2762     d'<var>octets</var> autoris&eacute;s dans un en-t&ecirc;te de requ&ecirc;te HTTP.</p>
2763
2764     <p>La directive <directive>LimitRequestFieldSize</directive> permet
2765     &agrave; l'administrateur du serveur de d&eacute;finir la taille
2766     maximale autoris&eacute;e d'un en-t&ecirc;te de requ&ecirc;te HTTP. Pour un serveur,
2767     cette valeur doit &ecirc;tre suffisamment grande pour contenir tout
2768     en-t&ecirc;te d'une requ&ecirc;te client normale. La taille d'un champ d'en-t&ecirc;te
2769     de requ&ecirc;te normal va varier selon les impl&eacute;mentations des clients,
2770     et en fonction des extensions que les utilisateurs
2771     configurent dans leurs navigateurs pour supporter la n&eacute;gociation de
2772     contenu d&eacute;taill&eacute;e. Les en-t&ecirc;tes d'authentification SPNEGO peuvent
2773     atteindre une taille de 12392 octets.</p>
2774
2775     <p>>L'administrateur du serveur peut utiliser cette directive pour
2776     contr&ocirc;ler plus efficacement les comportements anormaux des requ&ecirc;tes
2777     des clients, ce qui lui permettra de pr&eacute;venir certaines formes
2778     d'attaques par d&eacute;ni de service.</p>
2779
2780     <p>Par exemple ::</p>
2781
2782     <highlight language="config">LimitRequestFieldSize 4094</highlight>
2783
2784     <note>Dans des conditions normales, la valeur par d&eacute;faut de cette
2785     directive ne doit pas &ecirc;tre modifi&eacute;e.</note>
2786
2787     <note type="warning"><title>Avertissement</title>
2788      <p>Dans le cas des serveurs virtuels &agrave; base de noms, la valeur de
2789      cette directive est extraite du serveur virtuel par d&eacute;faut (le
2790      premier de la liste) pour lequel la paire adresse IP/port
2791      correspond le mieux.</p>
2792     </note>
2793 </usage>
2794 </directivesynopsis>
2795
2796 <directivesynopsis>
2797 <name>LimitRequestLine</name>
2798 <description>D&eacute;finit la taille maximale d'une ligne de requ&ecirc;te
2799 HTTP</description>
2800 <syntax>LimitRequestLine <var>octets</var></syntax>
2801 <default>LimitRequestLine 8190</default>
2802 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2803
2804 <usage>
2805     <p>Cette directive permet de d&eacute;finir la taille maximale autoris&eacute;e
2806     pour une ligne de requ&ecirc;te HTTP en <var>octets</var>.</p>
2807
2808     <p>La directive <directive>LimitRequestLine</directive> permet &agrave;
2809     l'administrateur du serveur de d&eacute;finir la taille
2810     maximale autoris&eacute;e d'une ligne de requ&ecirc;te HTTP client. Comme une
2811     requ&ecirc;te comporte une m&eacute;thode HTTP, un URI, et une version de
2812     protocole, la directive <directive>LimitRequestLine</directive>
2813     impose une restriction sur la longueur maximale autoris&eacute;e pour un
2814     URI dans une requ&ecirc;te au niveau du serveur. Pour un serveur, cette
2815     valeur doit &ecirc;tre suffisamment grande pour r&eacute;f&eacute;rencer les noms de
2816     toutes ses ressources, y compris toutes informations pouvant &ecirc;tre
2817     ajout&eacute;es dans la partie requ&ecirc;te d'une m&eacute;thode <code>GET</code>.</p>
2818
2819     <p>L'administrateur du serveur peut utiliser cette directive pour
2820     contr&ocirc;ler plus efficacement les comportements anormaux des requ&ecirc;tes
2821     des clients, ce qui lui permettra de pr&eacute;venir certaines formes
2822     d'attaques par d&eacute;ni de service.</p>
2823
2824     <p>Par exemple :</p>
2825
2826     <highlight language="config">LimitRequestLine 4094</highlight>
2827
2828     <note>Dans des conditions normales, cette directive doit conserver
2829     sa valeur par d&eacute;faut.</note>
2830
2831     <note type="warning"><title>Avertissement</title>
2832      <p>Dans le cas des serveurs virtuels &agrave; base de noms, la valeur de
2833      cette directive est extraite du serveur virtuel par d&eacute;faut (le
2834      premier de la liste) pour lequel la paire adresse IP/port
2835      correspond le mieux.</p>
2836     </note>
2837
2838 </usage>
2839 </directivesynopsis>
2840
2841 <directivesynopsis>
2842 <name>LimitXMLRequestBody</name>
2843 <description>D&eacute;finit la taille maximale du corps d'une requ&ecirc;te au format
2844 XML</description>
2845 <syntax>LimitXMLRequestBody <var>octets</var></syntax>
2846 <default>LimitXMLRequestBody 1000000</default>
2847 <contextlist><context>server config</context><context>virtual
2848 host</context>
2849 <context>directory</context><context>.htaccess</context></contextlist>
2850 <override>All</override>
2851
2852 <usage>
2853     <p>Taille maximale (en octets) du corps d'une requ&ecirc;te au format XML.
2854     Une valeur de <code>0</code> signifie qu'aucune limite n'est
2855     impos&eacute;e.</p>
2856
2857     <p>Exemple :</p>
2858
2859     <highlight language="config">LimitXMLRequestBody 0</highlight>
2860
2861 </usage>
2862 </directivesynopsis>
2863
2864 <directivesynopsis type="section">
2865 <name>Location</name>
2866 <description>N'applique les directives contenues qu'aux URLs
2867 sp&eacute;cifi&eacute;es</description>
2868 <syntax>&lt;Location
2869     <var>chemin URL</var>|<var>URL</var>&gt; ... &lt;/Location&gt;</syntax>
2870 <contextlist><context>server config</context><context>virtual
2871 host</context>
2872 </contextlist>
2873
2874 <usage>
2875     <p>La directive <directive type="section">Location</directive>
2876     limite la port&eacute;e des directives contenues aux URLs d&eacute;finies par
2877     l'argument URL. Elle est similaire &agrave; la directive <directive
2878     type="section" module="core">Directory</directive>, et marque le
2879     d&eacute;but d'une section qui se termine par une directive
2880     <code>&lt;/Location&gt;</code>. Les sections <directive
2881     type="section">Location</directive> sont trait&eacute;es selon l'ordre dans
2882     lequel elles apparaissent dans le fichier de configuration, mais
2883     apr&egrave;s les sections <directive
2884     type="section" module="core">Directory</directive> et la lecture des
2885     fichiers <code>.htaccess</code>, et apr&egrave;s les sections <directive
2886     type="section" module="core">Files</directive>.</p>
2887
2888     <p>Les sections <directive type="section">Location</directive>
2889     agissent compl&egrave;tement en dehors du syst&egrave;me de fichiers. Ceci a de
2890     nombreuses cons&eacute;quences. Parmi les plus importantes, on ne doit pas
2891     utiliser les sections <directive type="section">Location</directive>
2892     pour contr&ocirc;ler l'acc&egrave;s aux r&eacute;pertoires du syst&egrave;me de fichiers. Comme
2893     plusieurs URLs peuvent correspondre au m&ecirc;me r&eacute;pertoire du syst&egrave;me de
2894     fichiers, un tel contr&ocirc;le d'acc&egrave;s pourrait &ecirc;tre contourn&eacute;.</p>
2895
2896     <p>Les directives que contient cette section seront appliqu&eacute;es aux
2897     requ&ecirc;tes si la partie chemin de l'URL satisfait &agrave; l'un au moins de
2898     ces crit&egrave;res :
2899     </p>
2900     <ul>
2901       <li>Le chemin sp&eacute;cifi&eacute; correspond exactement &agrave; la partie chemin de
2902       l'URL.
2903       </li>
2904       <li>Le chemin sp&eacute;cifi&eacute;, qui se termine par un slash, est un
2905       pr&eacute;fixe de la partie chemin de l'URL (trait&eacute; comme une racine du
2906       contexte).
2907       </li>
2908       <li>Le chemin sp&eacute;cifi&eacute;, si on lui ajoute un slash de fin, est un
2909       pr&eacute;fixe de la partie chemin de l'URL (aussi trait&eacute; comme une racine du
2910       contexte).
2911       </li>
2912     </ul>
2913     <p>
2914     Dans l'exemple ci-dessous, o&ugrave; aucun slash de fin n'est utilis&eacute;, les
2915     directives contenues dans la section s'appliqueront &agrave; /private1,
2916     /private1/ et /private1/file.txt, mais pas &agrave; /private1other. 
2917     </p>
2918     <highlight language="config">
2919 &lt;Location "/private1"&gt;
2920     #  ...
2921 &lt;/Location&gt;
2922     </highlight>
2923     <p>
2924     De m&ecirc;me, dans l'exemple ci-dessous, o&ugrave; l'on utilise un slash de fin, les
2925     directives contenues dans la section s'appliqueront &agrave; /private2/ et
2926     &agrave; /private2/file.txt, mais pas &agrave; /private2other.
2927     </p>
2928     <highlight language="config">
2929 &lt;Location "/private2<em>/</em>"&gt;
2930     # ...
2931 &lt;/Location&gt;
2932     </highlight>
2933     
2934     <note><title>Quand utiliser la section <directive
2935     type="section">Location</directive></title>
2936
2937     <p>Vous pouvez utiliser une section <directive
2938     type="section">Location</directive> pour appliquer des directives &agrave;
2939     des contenus situ&eacute;s en dehors du syst&egrave;me de fichiers. Pour les
2940     contenus situ&eacute;s &agrave; l'int&eacute;rieur du syst&egrave;me de fichiers, utilisez
2941     plut&ocirc;t les sections <directive
2942     type="section" module="core">Directory</directive> et <directive
2943     type="section" module="core">Files</directive>. <code>&lt;Location
2944     "/"&gt;</code> constitue une exception et permet d'appliquer ais&eacute;ment
2945     une configuration &agrave; l'ensemble du serveur.</p>
2946     </note>
2947
2948     <p>Pour toutes les requ&ecirc;tes originales (non mandat&eacute;es), l'argument
2949     URL est un chemin d'URL de la forme
2950     <code>/chemin/</code>. <em>Aucun protocole, nom d'h&ocirc;te, port, ou cha&icirc;ne
2951     de requ&ecirc;te ne doivent appara&icirc;tre.</em> Pour les requ&ecirc;tes mandat&eacute;es, l'URL
2952     sp&eacute;cifi&eacute;e doit &ecirc;tre de la forme
2953     <code>protocole://nom_serveur/chemin</code>, et vous devez inclure
2954     le pr&eacute;fixe.</p>
2955
2956     <p>L'URL peut contenir des caract&egrave;res g&eacute;n&eacute;riques. Dans une cha&icirc;ne
2957     avec caract&egrave;res g&eacute;n&eacute;riques, <code>?</code> correspond &agrave; un caract&egrave;re
2958     quelconque, et <code>*</code> &agrave; toute cha&icirc;ne de caract&egrave;res. Les
2959     caract&egrave;res g&eacute;n&eacute;riques ne peuvent pas remplacer un / dans le chemin
2960     URL.</p>
2961
2962     <p>On peut aussi utiliser les <glossary ref="regex">Expressions
2963     rationnelles</glossary>, moyennant l'addition d'un caract&egrave;re
2964     <code>~</code>. Par exemple :</p>
2965
2966     <highlight language="config">
2967 &lt;Location ~ "/(extra|special)/data"&gt;
2968     #...
2969 &lt;/Location&gt;
2970 </highlight>
2971
2972     <p>concernerait les URLs contenant les sous-cha&icirc;ne
2973     <code>/extra/data</code> ou <code>/special/data</code>. La directive
2974     <directive type="section" module="core">LocationMatch</directive>
2975     pr&eacute;sente un comportement identique &agrave; la version avec expressions
2976     rationnelles de la directive <directive
2977     type="section">Location</directive>, et son utilisation est
2978     pr&eacute;f&eacute;rable &agrave; l'utilisation de cette derni&egrave;re pour la simple raison
2979     qu'il est difficile de distinguer <code>~</code> de <code>-</code>
2980     dans la plupart des fontes.</p>
2981
2982     <p>La directive <directive type="section">Location</directive>
2983     s'utilise principalement avec la directive <directive
2984     module="core">SetHandler</directive>. Par exemple, pour activer les
2985     requ&ecirc;tes d'&eacute;tat, mais ne les autoriser que depuis des navigateurs
2986     appartenant au domaine <code>example.com</code>, vous pouvez
2987     utiliser :</p>
2988
2989     <highlight language="config">
2990 &lt;Location "/status"&gt;
2991   SetHandler server-status
2992   Require host example.com
2993 &lt;/Location&gt;
2994     </highlight>
2995
2996     <note><title>Note &agrave; propos du slash (/)</title>
2997       <p>La signification du caract&egrave;re slash d&eacute;pend de l'endroit o&ugrave; il
2998       se trouve dans l'URL. Les utilisateurs peuvent &ecirc;tre habitu&eacute;s &agrave;
2999       son comportement dans le syst&egrave;me de fichiers o&ugrave; plusieurs slashes
3000       successifs sont souvent r&eacute;duits &agrave; un slash unique (en d'autres
3001       termes, <code>/home///foo</code> est identique &agrave;
3002       <code>/home/foo</code>). Dans l'espace de nommage des URLs, ce
3003       n'est cependant pas toujours le cas. Pour la directive <directive
3004       type="section" module="core">LocationMatch</directive> et la
3005       version avec expressions rationnelles de la directive <directive
3006       type="section">Location</directive>, vous devez sp&eacute;cifier
3007       explicitement les slashes multiples si telle est votre
3008       intention.</p>
3009
3010       <p>Par exemple, <code>&lt;LocationMatch "^/abc"&gt;</code> va
3011       correspondre &agrave; l'URL <code>/abc</code> mais pas &agrave; l'URL <code>
3012       //abc</code>. La directive <directive type="section"
3013       >Location</directive> sans expression rationnelle se comporte de
3014       la m&ecirc;me mani&egrave;re lorsqu'elle est utilis&eacute;e pour des requ&ecirc;tes
3015       mandat&eacute;es. Par contre, lorsque la directive <directive
3016       type="section">Location</directive> sans expression rationnelle
3017       est utilis&eacute;e pour des requ&ecirc;tes non mandat&eacute;es, elle fera
3018       correspondre implicitement les slashes multiples &agrave; des slashes
3019       uniques. Par exemple, si vous sp&eacute;cifiez <code>&lt;Location
3020       "/abc/def"&gt;</code>, une requ&ecirc;te de la forme
3021       <code>/abc//def</code> correspondra.</p>
3022     </note>
3023 </usage>
3024 <seealso><a href="../sections.html">Comment fonctionnent les sections
3025 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
3026 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
3027 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te.</seealso>
3028 </directivesynopsis>
3029
3030 <directivesynopsis type="section">
3031 <name>LocationMatch</name>
3032 <description>N'applique les directives contenues qu'aux URLs
3033 correspondant &agrave; une expression rationnelle</description>
3034 <syntax>&lt;LocationMatch
3035     <var>regex</var>&gt; ... &lt;/LocationMatch&gt;</syntax>
3036 <contextlist><context>server config</context><context>virtual
3037 host</context>
3038 </contextlist>
3039
3040 <usage>
3041     <p>La directive <directive type="section">LocationMatch</directive>
3042     limite la port&eacute;e des directives contenues &agrave; l'URL sp&eacute;cifi&eacute;e, de
3043     mani&egrave;re identique &agrave; la directive <directive module="core"
3044     type="section">Location</directive>. Mais son argument permettant de
3045     sp&eacute;cifier les URLs concern&eacute;es est une <glossary
3046     ref="regex">expression rationnelle</glossary> au lieu d'une simple
3047     cha&icirc;ne de caract&egrave;res. Par exemple :</p>
3048
3049     <highlight language="config">
3050 &lt;LocationMatch "/(extra|special)/data"&gt;
3051     # ...
3052 &lt;/LocationMatch&gt;
3053 </highlight>
3054
3055     <p>correspondrait &agrave; toute URL contenant les sous-cha&icirc;nes
3056     <code>/extra/data</code> ou <code>/special/data</code>.</p>
3057
3058     <note><p>Si vous recherchez une URL <strong>commen&ccedil;ant par</strong>
3059     plut&ocirc;t que seulement contenant <code>/extra/data</code>, pr&eacute;fixez
3060     l'expression rationnelle avec un <code>^</code>.</p>
3061
3062     <highlight language="config">
3063     &lt;LocationMatch "^/(extra|special)/data"&gt;
3064     </highlight>
3065     </note>
3066
3067     <p>A partir de la version 2.4.8, les groupes nomm&eacute;s et les
3068     r&eacute;f&eacute;rences arri&egrave;res sont extraits et enregistr&eacute;s dans
3069     l'environnement avec leur nom en majuscules et pr&eacute;fix&eacute;
3070     par "MATCH_". Ceci permet
3071     de r&eacute;f&eacute;rencer des URLs dans des <a href="../expr.html">expressions</a>
3072     ou au sein de modules comme <module>mod_rewrite</module>. Pour
3073     &eacute;viter toute confusion, les r&eacute;f&eacute;rences arri&egrave;res num&eacute;rot&eacute;es (non
3074     nomm&eacute;es) sont ignor&eacute;es. Vous devez utiliser &agrave; la place des groupes
3075     nomm&eacute;s.</p>
3076
3077 <highlight language="config">
3078 &lt;LocationMatch "^/combined/(?&lt;sitename&gt;[^/]+)"&gt;
3079     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
3080 &lt;/LocationMatch&gt;
3081 </highlight>    
3082 </usage>
3083 <seealso><a href="../sections.html">Comment fonctionnent les sections
3084 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
3085 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
3086 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te.</seealso>
3087 </directivesynopsis>
3088
3089 <directivesynopsis>
3090 <name>LogLevel</name>
3091 <description>Contr&ocirc;le la verbosit&eacute; du journal des erreurs</description>
3092 <syntax>LogLevel [<var>module</var>:]<var>niveau</var>
3093     [<var>module</var>:<var>niveau</var>] ...
3094 </syntax>
3095 <default>LogLevel warn</default>
3096 <contextlist><context>server config</context><context>virtual
3097 host</context><context>directory</context>
3098 </contextlist>
3099 <compatibility>La configuration du niveau de journalisation par module
3100 et par r&eacute;pertoire est disponible depuis la version 2.3.6 du serveur HTTP
3101 Apache</compatibility>
3102 <usage>
3103     <p>La directive <directive>LogLevel</directive> permet d'ajuster la
3104     verbosit&eacute; des messages enregistr&eacute;s dans les journaux d'erreur (voir
3105     la directive <directive module="core">ErrorLog</directive>
3106     directive). Les <var>niveau</var>x disponibles sont pr&eacute;sent&eacute;s
3107     ci-apr&egrave;s, par ordre de criticit&eacute; d&eacute;croissante :</p>
3108
3109     <table border="1">
3110     <columnspec><column width=".2"/><column width=".3"/><column width=".5"/>
3111     </columnspec>
3112       <tr>
3113         <th><strong>Niveau</strong> </th>
3114
3115         <th><strong>Description</strong> </th>
3116
3117         <th><strong>Exemple</strong> </th>
3118       </tr>
3119
3120       <tr>
3121         <td><code>emerg</code> </td>
3122
3123         <td>Urgences - le syst&egrave;me est inutilisable.</td>
3124
3125         <td>"Child cannot open lock file. Exiting"</td>
3126       </tr>
3127
3128       <tr>
3129         <td><code>alert</code> </td>
3130
3131         <td>Des mesures doivent &ecirc;tre prises imm&eacute;diatement.</td>
3132
3133         <td>"getpwuid: couldn't determine user name from uid"</td>
3134       </tr>
3135
3136       <tr>
3137         <td><code>crit</code> </td>
3138
3139         <td>Conditions critiques.</td>
3140
3141         <td>"socket: Failed to get a socket, exiting child"</td>
3142       </tr>
3143
3144       <tr>
3145         <td><code>error</code> </td>
3146
3147         <td>Erreurs.</td>
3148
3149         <td>"Premature end of script headers"</td>
3150       </tr>
3151
3152       <tr>
3153         <td><code>warn</code> </td>
3154
3155         <td>Avertissements.</td>
3156
3157         <td>"child process 1234 did not exit, sending another
3158         SIGHUP"</td>
3159       </tr>
3160
3161       <tr>
3162         <td><code>notice</code> </td>
3163
3164         <td>Ev&egrave;nement important mais normal.</td>
3165
3166         <td>"httpd: caught SIGBUS, attempting to dump core in
3167         ..."</td>
3168       </tr>
3169
3170       <tr>
3171         <td><code>info</code> </td>
3172
3173         <td>Informations.</td>
3174
3175         <td>"Server seems busy, (you may need to increase
3176         StartServers, or Min/MaxSpareServers)..."</td>
3177       </tr>
3178
3179       <tr>
3180         <td><code>debug</code> </td>
3181
3182         <td>Messages de d&eacute;bogage.</td>
3183
3184         <td>"Opening config file ..."</td>
3185       </tr>
3186       <tr>
3187         <td><code>trace1</code> </td>
3188
3189         <td>Messages de traces</td>
3190
3191         <td>"proxy: FTP: control connection complete"</td>
3192       </tr>
3193       <tr>
3194         <td><code>trace2</code> </td>
3195
3196         <td>Messages de traces</td>
3197
3198         <td>"proxy: CONNECT: sending the CONNECT request to the remote proxy"</td>
3199       </tr>
3200       <tr>
3201         <td><code>trace3</code> </td>
3202
3203         <td>Messages de traces</td>
3204
3205         <td>"openssl: Handshake: start"</td>
3206       </tr>
3207       <tr>
3208         <td><code>trace4</code> </td>
3209
3210         <td>Messages de traces</td>
3211
3212         <td>"read from buffered SSL brigade, mode 0, 17 bytes"</td>
3213       </tr>
3214       <tr>
3215         <td><code>trace5</code> </td>
3216
3217         <td>Messages de traces</td>
3218
3219         <td>"map lookup FAILED: map=rewritemap key=keyname"</td>
3220       </tr>
3221       <tr>
3222         <td><code>trace6</code> </td>
3223
3224         <td>Messages de traces</td>
3225
3226         <td>"cache lookup FAILED, forcing new map lookup"</td>
3227       </tr>
3228       <tr>
3229         <td><code>trace7</code> </td>
3230
3231         <td>Messages de traces, enregistrement d'une grande quantit&eacute; de
3232         donn&eacute;es</td>
3233
3234         <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3235       </tr>
3236       <tr>
3237         <td><code>trace8</code> </td>
3238
3239         <td>Messages de traces, enregistrement d'une grande quantit&eacute; de
3240         donn&eacute;es</td>
3241
3242         <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3243       </tr>
3244     </table>
3245
3246     <p>Lorsqu'un niveau particulier est sp&eacute;cifi&eacute;, les messages de tous
3247     les autres niveaux de criticit&eacute; sup&eacute;rieure seront aussi enregistr&eacute;s.
3248     <em>Par exemple</em>, si <code>LogLevel info</code> est sp&eacute;cifi&eacute;,
3249     les messages de niveaux <code>notice</code> et <code>warn</code>
3250     seront aussi &eacute;mis.</p>
3251
3252     <p>Il est recommand&eacute; d'utiliser un niveau <code>crit</code> ou
3253     inf&eacute;rieur.</p>
3254
3255     <p>Par exemple :</p>
3256
3257     <highlight language="config">LogLevel notice</highlight>
3258
3259     <note><title>Note</title>
3260       <p>Si la journalisation s'effectue directement dans un fichier,
3261       les messages de niveau <code>notice</code> ne peuvent pas &ecirc;tre
3262       supprim&eacute;s et sont donc toujours journalis&eacute;s. Cependant, ceci ne
3263       s'applique pas lorsque la journalisation s'effectue vers
3264       <code>syslog</code>.</p>
3265     </note>
3266     
3267     <p>Sp&eacute;cifier un niveau sans nom de module va attribuer ce niveau &agrave;
3268     tous les modules. Sp&eacute;cifier un niveau avec nom de module va
3269     attribuer ce niveau &agrave; ce module seulement. Il est possible de
3270     sp&eacute;cifier un module par le nom de son fichier source ou par son
3271     identificateur, avec ou sans le suffixe <code>_module</code>. Les
3272     trois sp&eacute;cifications suivantes sont donc &eacute;quivalentes :</p>
3273
3274     <highlight language="config">
3275 LogLevel info ssl:warn
3276 LogLevel info mod_ssl.c:warn
3277 LogLevel info ssl_module:warn
3278     </highlight>
3279
3280     <p>Il est aussi possible d'attribuer un niveau de journalisation par
3281     r&eacute;pertoire :</p>
3282
3283     <highlight language="config">
3284 LogLevel info
3285 &lt;Directory "/usr/local/apache/htdocs/app"&gt;
3286   LogLevel debug
3287 &lt;/Directory&gt;
3288     </highlight>
3289
3290     <note>
3291         La configuration du niveau de journalisation par r&eacute;pertoire
3292         n'affecte que les messages journalis&eacute;s apr&egrave;s l'interpr&eacute;tation de
3293         la requ&ecirc;te et qui sont associ&eacute;s &agrave; cette derni&egrave;re. Les messages
3294         de journalisation associ&eacute;s au serveur ou &agrave; la connexion ne sont
3295         pas affect&eacute;s. Il est cependant possible d'agir sur ces
3296         derniers &agrave; l'aide de la directive <directive
3297         module="core">LogLevelOverride</directive>.
3298     </note>
3299 </usage>
3300 <seealso><directive module="core">ErrorLog</directive></seealso>
3301 <seealso><directive module="core">ErrorLogFormat</directive></seealso>
3302 <seealso><directive module="core">LogLevelOverride</directive></seealso>
3303 <seealso><a href="../logs.html">Journaux du serveur HTTP Apache</a></seealso>
3304 </directivesynopsis>
3305
3306 <directivesynopsis>
3307 <name>LogLevelOverride</name>
3308 <description>Surcharge la verbosit&eacute; du journal des erreurs pour certains
3309 clients</description>
3310 <syntax>LogLevel <var>ipaddress</var>[/<var>prefixlen</var>]
3311     [<var>module</var>:]<var>level</var> [<var>module</var>:<var>level</var>] ...
3312 </syntax>
3313 <default>non d&eacute;finie</default>
3314 <contextlist><context>server config</context><context>virtual host</context>
3315 </contextlist>
3316 <compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
3317 Apache.</compatibility>
3318
3319 <usage>
3320     <p>La directive <directive>LogLevelOverride</directive> permet
3321     d'affiner la d&eacute;finition de la directive <directive
3322     module="core">LogLevel</directive> pour les requ&ecirc;tes en provenance
3323     de certaines adresses IP. Il est ainsi possible d'activer une
3324     journalisation d&eacute;taill&eacute;e seulement pour certains clients &agrave; des fins
3325     de test. Les adresses IP sont v&eacute;rifi&eacute;es &agrave; un stade tr&egrave;s pr&eacute;coce du
3326     processus de connexion. Ainsi, la directive
3327     <directive>LogLevelOverride</directive> permet de modifier le niveau
3328     de journalisation pour des processus comme la n&eacute;gociation SSL qui
3329     intervient avant l'&eacute;valuation d'une &eacute;ventuelle directive <directive
3330     module="core">LogLevel</directive> au sein d'un conteneur <directive
3331     type="section" module="core">If</directive>.</p>
3332
3333     <p>La directive <directive>LogLevelOverride</directive> accepte soit
3334     une adresse IP simple, soit une sp&eacute;cification de sous-r&eacute;seau CIDR de
3335     la forme adresse-IP/masque. Pour la syntaxe de la sp&eacute;cification du
3336     niveau de journalisation, voir la directive <directive
3337     module="core">LogLevel</directive> directive.</p>
3338
3339     <p>Pour les requ&ecirc;tes concern&eacute;es par une directive
3340     <directive>LogLevelOverride</directive>, les sp&eacute;cifications de
3341     niveau r&eacute;pertoire de la directive <directive
3342     module="core">LogLevel</directive> sont ignor&eacute;es.</p>
3343
3344     <p>Exemples:</p>
3345
3346     <highlight language="config">
3347         LogLevelOverride 192.0.2.0/24 ssl:trace6
3348         LogLevelOverride 192.0.2.7 ssl:trace8
3349     </highlight>
3350
3351     <note>
3352         La directive <directive
3353         module="core">LogLevelOverride</directive> n'affecte que les
3354         messages associ&eacute;s &agrave; la requ&ecirc;te ou &agrave; la connexion. Les messages
3355         associ&eacute;s au serveur ne sont pas affect&eacute;s.
3356     </note>
3357
3358 </usage>
3359 <seealso><directive module="core">LogLevel</directive></seealso>
3360 </directivesynopsis>
3361
3362 <directivesynopsis>
3363 <name>MaxKeepAliveRequests</name>
3364 <description>Nombre de requ&ecirc;tes permises pour une connexion
3365 persistante</description>
3366 <syntax>MaxKeepAliveRequests <var>nombre</var></syntax>
3367 <default>MaxKeepAliveRequests 100</default>
3368 <contextlist><context>server config</context><context>virtual
3369 host</context>
3370 </contextlist>
3371
3372 <usage>
3373     <p>La directive <directive>MaxKeepAliveRequests</directive> permet
3374     de limiter le nombre de requ&ecirc;tes autoris&eacute;es par connexion lorsque
3375     <directive module="core" >KeepAlive</directive> est &agrave; "on". Si sa
3376     valeur est <code>0</code>, le nombre de requ&ecirc;tes autoris&eacute;es est
3377     illimit&eacute;. Il est recommand&eacute; de d&eacute;finir une valeur assez haute pour
3378     des performances du serveur maximales.</p>
3379
3380     <p>Par exemple :</p>
3381
3382     <highlight language="config">MaxKeepAliveRequests 500</highlight>
3383 </usage>
3384 </directivesynopsis>
3385
3386 <directivesynopsis>
3387 <name>MaxRanges</name>
3388 <description>Nombre de segments de donn&eacute;es autoris&eacute; avant le renvoi de
3389 l'int&eacute;gralit&eacute; de la ressource</description>
3390 <syntax>MaxRanges default | unlimited | none | <var>nombre de segments</var></syntax>
3391 <default>MaxRanges 200</default>
3392 <contextlist><context>server config</context><context>virtual host</context>
3393 <context>directory</context>
3394 </contextlist>
3395 <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3396 Apache</compatibility>
3397
3398 <usage>
3399     <p>La directive <directive>MaxRanges</directive> permet de limiter
3400     le nombre de segments de donn&eacute;es que le serveur va renvoyer au
3401     client. Si un nombre de segments plus important est demand&eacute;, la
3402     ressource sera renvoy&eacute;e dans son int&eacute;gralit&eacute;.</p>
3403
3404     <dl>  
3405       <dt><strong>default</strong></dt>
3406       <dd>Limite le nombre de segments de donn&eacute;es &agrave; 200 (valeur par
3407       d&eacute;faut d&eacute;finie &agrave; la compilation).</dd>
3408    
3409       <dt><strong>none</strong></dt>
3410       <dd>Les en-t&ecirc;tes Range sont ignor&eacute;s.</dd>
3411           
3412       <dt><strong>unlimited</strong></dt>
3413       <dd>Le nombre de segments de donn&eacute;es est illimit&eacute;.</dd>
3414
3415       <dt><var>nombre de segments</var></dt>
3416       <dd>Un nombre positif repr&eacute;sentera la nombre de segments de
3417       donn&eacute;es maximal que le serveur renverra au client.</dd>
3418     </dl>
3419 </usage>
3420 </directivesynopsis>
3421
3422 <directivesynopsis>
3423 <name>MaxRangeOverlaps</name>
3424     <description>Nombre de chevauchements de segments de donn&eacute;es autoris&eacute;
3425     (par exemple <code>100-200,150-300</code>) avant le renvoi de la
3426     ressource compl&egrave;te</description>
3427     <syntax>MaxRangeOverlaps default | unlimited | none | <var>nombre de
3428     chevauchements</var></syntax>
3429     <default>MaxRangeOverlaps 20</default>
3430     <contextlist><context>server config</context><context>virtual host</context>
3431         <context>directory</context>
3432     </contextlist>
3433     <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3434     Apache</compatibility>
3435
3436     <usage>
3437         <p>La directive <directive>MaxRangeOverlaps</directive> permet
3438         de limiter le nombre de chevauchements de segments de donn&eacute;es HTTP
3439         autoris&eacute; par le serveur. Si le nombre de
3440         chevauchements de segments demand&eacute; est sup&eacute;rieur au nombre maximal
3441         autoris&eacute;, la ressource sera renvoy&eacute;e dans son int&eacute;gralit&eacute;.</p>
3442
3443         <dl>
3444             <dt><strong>default</strong></dt>
3445             <dd>Limite le nombre de chevauchements de segments &agrave; la valeur
3446             par d&eacute;faut 20 d&eacute;finie &agrave; la compilation.</dd>
3447
3448             <dt><strong>none</strong></dt>
3449             <dd>Aucun chevauchement de segment n'est autoris&eacute;.</dd>
3450
3451             <dt><strong>unlimited</strong></dt>
3452             <dd>Le nombre de chevauchements de segments est illimit&eacute;.</dd>
3453
3454             <dt><var>number-of-ranges</var></dt>
3455             <dd>Un nombre positif repr&eacute;sente le nombre maximal de
3456             chevauchements de segments autoris&eacute; par le serveur.</dd>
3457         </dl>
3458     </usage>
3459 </directivesynopsis>
3460
3461 <directivesynopsis>
3462     <name>MaxRangeReversals</name>
3463     <description>Nombre d'inversions d'ordre autoris&eacute; dans la sp&eacute;cification des
3464     segments de donn&eacute;es (par exemple <code>100-200,50-70</code>) avant le renvoi de la
3465     ressource compl&egrave;te</description>
3466     <syntax>MaxRangeReversals default | unlimited | none | <var>nombre
3467     d'inversions</var></syntax>
3468     <default>MaxRangeReversals 20</default>
3469     <contextlist><context>server config</context><context>virtual host</context>
3470         <context>directory</context>
3471     </contextlist>
3472     <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3473     Apache</compatibility>
3474
3475     <usage>
3476         <p>La directive <directive>MaxRangeReversals</directive> permet
3477         de limiter le nombre d'inversions d'ordre dans la sp&eacute;cification
3478         des segments de donn&eacute;es HTTP
3479         autoris&eacute; par le serveur. Si le nombre
3480         d'inversions demand&eacute; est sup&eacute;rieur au nombre maximal
3481         autoris&eacute;, la ressource sera renvoy&eacute;e dans son int&eacute;gralit&eacute;.</p>
3482
3483         <dl>
3484             <dt><strong>default</strong></dt>
3485             <dd>Limite le nombre d'inversions &agrave; la valeur
3486             par d&eacute;faut 20 d&eacute;finie &agrave; la compilation.</dd>
3487
3488             <dt><strong>none</strong></dt>
3489             <dd>Aucune inversion n'est autoris&eacute;e.</dd>
3490
3491             <dt><strong>unlimited</strong></dt>
3492             <dd>Le nombre d'inversions est illimit&eacute;.</dd>
3493
3494             <dt><var>number-of-ranges</var></dt>
3495             <dd>Un nombre positif repr&eacute;sente le nombre maximal
3496             d'inversions autoris&eacute; par le serveur.</dd>
3497         </dl>
3498     </usage>
3499 </directivesynopsis>
3500
3501 <directivesynopsis>
3502 <name>Mutex</name>
3503 <description>D&eacute;finit les m&eacute;canismes de mutex et le repertoire du fichier
3504 verrou pour tous les mutex ou seulement les mutex sp&eacute;cifi&eacute;s</description>
3505 <syntax>Mutex <var>m&eacute;canisme</var> [default|<var>nom-mutex</var>] ... [OmitPID]</syntax>
3506 <default>Mutex default</default>
3507 <contextlist><context>server config</context></contextlist>
3508 <compatibility>Disponible depuis la version 2.3.4 du serveur HTTP Apache</compatibility>
3509
3510 <usage>
3511     <p>La directive <directive>Mutex</directive> permet de d&eacute;finir le
3512     m&eacute;canisme de mutex, et &eacute;ventuellement le r&eacute;pertoire du fichier
3513     verrou que les modules et httpd utilisent pour s&eacute;rialiser l'acc&egrave;s aux
3514     ressources. Sp&eacute;cifiez <code>default</code> comme premier argument
3515     pour modifier la configuration de tous les mutex ; sp&eacute;cifiez un nom
3516     de mutex (voir la table ci-dessous) comme premier argument pour
3517     ne modifier que la configuration de ce mutex.</p>
3518
3519     <p>La directive <directive>Mutex</directive> est typiquement
3520     utilis&eacute;e dans les situations exceptionnelles suivantes :</p>
3521
3522     <ul>
3523         <li>choix d'un autre m&eacute;canisme de mutex lorsque le m&eacute;canisme par
3524         d&eacute;faut s&eacute;lectionn&eacute; par <glossary>APR</glossary> pr&eacute;sente un
3525         probl&egrave;me de fonctionnement ou de performances.</li>
3526
3527         <li>choix d'un autre r&eacute;pertoire utilis&eacute; par les mutex &agrave; base de
3528         fichier lorsque le r&eacute;pertoire par d&eacute;faut ne supporte pas le
3529         verrouillage</li>
3530     </ul>
3531
3532     <note><title>Modules support&eacute;s</title>
3533     <p>Cette directive ne configure que les mutex qui ont &eacute;t&eacute;
3534     enregistr&eacute;s avec le serveur de base via l'API
3535     <code>ap_mutex_register()</code>. Tous les modules fournis avec
3536     httpd supportent la directive <directive>Mutex</directive>, mais il
3537     n'en sera pas forc&eacute;ment de m&ecirc;me pour les modules tiers.
3538     Reportez-vous &agrave; la documentation du module tiers consid&eacute;r&eacute; afin de
3539     d&eacute;terminer le(s) nom(s) de mutex qui pourront &ecirc;tre d&eacute;finis si la
3540     directive est support&eacute;e.</p>
3541     </note>
3542
3543     
3544
3545     <p>Les <em>m&eacute;canismes</em> de mutex disponibles sont les suivants :</p>
3546     <ul>
3547         <li><code>default | yes</code>
3548         <p>C'est l'impl&eacute;mentation du verrouillage par d&eacute;faut, telle
3549         qu'elle est d&eacute;finie par <glossary>APR</glossary>. On peut
3550         afficher l'impl&eacute;mentation du verrouillage par d&eacute;faut via la
3551         commande <program>httpd</program> avec l'option <code>-V</code>.</p></li>
3552
3553         <li><code>none | no</code>
3554         <p>Le mutex est d&eacute;sactiv&eacute;, et cette valeur n'est permise pour un
3555         mutex que si le module indique qu'il s'agit d'un choix valide.
3556         Consultez la documentation du module pour plus d'informations.</p></li>
3557
3558         <li><code>posixsem</code>
3559         <p>Une variante de mutex bas&eacute;e sur un s&eacute;maphore Posix.</p>
3560
3561         <note type="warning"><title>Avertissement</title>
3562         <p>La propri&eacute;t&eacute; du s&eacute;maphore n'est pas restitu&eacute;e si un thread du
3563         processus g&eacute;rant le mutex provoque une erreur de segmentation,
3564         ce qui provoquera un blocage du serveur web.</p>
3565         </note>
3566         </li>
3567
3568         <li><code>sysvsem</code>
3569         <p>Une variante de mutex bas&eacute;e sur un s&eacute;maphore IPC SystemV.</p>
3570
3571         <note type="warning"><title>Avertissement</title>
3572         <p>Il peut arriver que les s&eacute;maphores SysV soient conserv&eacute;s si le
3573         processus se crashe avant que le s&eacute;maphore ne soit supprim&eacute;.</p>
3574         </note>
3575
3576         <note type="warning"><title>S&eacute;curit&eacute;</title>
3577         <p>L'API des s&eacute;maphores permet les attaques par d&eacute;ni de service
3578         par tout programme CGI s'ex&eacute;cutant sous le m&ecirc;me uid que le
3579         serveur web (autrement dit tous les programmes CGI, &agrave; moins que
3580         vous n'utilisiez un programme du style <program>suexec</program>
3581         ou <code>cgiwrapper</code>).</p>
3582         </note>
3583         </li>
3584
3585         <li><code>sem</code>
3586         <p>S&eacute;lection de la "meilleure" impl&eacute;mentation des s&eacute;maphores
3587         disponible ; le choix s'effectue entre les s&eacute;maphores posix et
3588         IPC SystemV, dans cet ordre.</p></li>
3589
3590         <li><code>pthread</code>
3591         <p>Une variante de mutex &agrave; base de mutex de thread Posix
3592         inter-processus.</p>
3593
3594         <note type="warning"><title>Avertissement</title>
3595         <p>Sur la plupart des syst&egrave;mes, si un processus enfant se
3596         termine anormalement alors qu'il d&eacute;tenait un mutex qui utilise
3597         cette impl&eacute;mentation, le serveur va se bloquer et cesser de
3598         r&eacute;pondre aux requ&ecirc;tes. Dans ce cas, un red&eacute;marrage manuel est
3599         n&eacute;cessaire pour r&eacute;cup&eacute;rer le mutex.</p>
3600         <p>Solaris constitue une exception notable, en ceci qu'il fournit
3601         un m&eacute;canisme qui permet en g&eacute;n&eacute;ral de r&eacute;cup&eacute;rer le mutex apr&egrave;s
3602         l'arr&ecirc;t anormal d'un processus enfant qui d&eacute;tenait le mutex.</p>
3603         <p>Si votre syst&egrave;me impl&eacute;mente la fonction
3604         <code>pthread_mutexattr_setrobust_np()</code>, vous devriez
3605         pouvoir utiliser l'option <code>pthread</code> sans probl&egrave;me.</p>
3606         </note>
3607         </li>
3608
3609         <li><code>fcntl:/chemin/vers/mutex</code>
3610         <p>Une variante de mutex utilisant un fichier verrou physique et
3611         la fonction <code>fcntl()</code>.</p>
3612
3613         <note type="warning"><title>Avertissement</title>
3614         <p>Lorsqu'on utilise plusieurs mutex bas&eacute;s sur ce m&eacute;canisme dans
3615         un environnement multi-processus, multi-thread, des erreurs de
3616         blocage (EDEADLK) peuvent &ecirc;tre rapport&eacute;es pour des op&eacute;rations de
3617         mutex valides si la fonction <code>fcntl()</code> ne g&egrave;re pas
3618         les threads, comme sous Solaris.</p>
3619         </note>
3620         </li>
3621
3622         <li><code>flock:/chemin/vers/mutex</code>
3623         <p>M&eacute;thode similaire &agrave; <code>fcntl:/chemin/vers/mutex</code>,
3624         mais c'est la fonction <code>flock()</code> qui est utilis&eacute;e
3625         pour g&eacute;rer le verrouillage par fichier.</p></li>
3626
3627         <li><code>file:/chemin/vers/mutex</code>
3628         <p>S&eacute;lection de la "meilleure" impl&eacute;mentation de verrouillage
3629         par fichier disponible ; le choix s'effectue entre
3630         <code>fcntl</code> et <code>flock</code>, dans cet ordre.</p></li>
3631     </ul>
3632
3633     <p>La plupart des m&eacute;canismes ne sont disponibles que sur les
3634     plate-formes o&ugrave; ces derni&egrave;res et <glossary>APR</glossary> les
3635     supportent. Les m&eacute;canismes qui ne sont pas disponibles sur toutes
3636     les plate-formes sont <em>posixsem</em>,
3637     <em>sysvsem</em>, <em>sem</em>, <em>pthread</em>, <em>fcntl</em>, 
3638     <em>flock</em>, et <em>file</em>.</p>
3639
3640     <p>Avec les m&eacute;canismes &agrave; base de fichier <em>fcntl</em> et
3641     <em>flock</em>, le chemin, s'il est fourni, est un r&eacute;pertoire dans
3642     lequel le fichier verrou sera cr&eacute;&eacute;. Le r&eacute;pertoire par d&eacute;faut est le
3643     r&eacute;pertoire d'ex&eacute;cution httpd d&eacute;fini par la directive <directive
3644     module="core">DefaultRuntimeDir</directive>. Si le r&eacute;pertoire
3645     sp&eacute;cifi&eacute; est un chemin relatif, il est relatif au chemin d&eacute;fini par
3646     la directive <directive module="core">DefaultRuntimeDir</directive>.
3647     Utilisez toujours un syst&egrave;me
3648     de fichiers local sur disque pour <code>/chemin/vers/mutex</code> et
3649     jamais un r&eacute;pertoire se trouvant dans un syst&egrave;me de fichiers NFS ou
3650     AFS. Le nom de base du fichier se composera du type de mutex, d'une
3651     cha&icirc;ne optionnelle correspondant &agrave; l'instance et fournie par le
3652     module ; et, sauf si le mot-cl&eacute; <code>OmitPID</code> a &eacute;t&eacute; sp&eacute;cifi&eacute;,
3653     l'identificateur du processus parent httpd sera ajout&eacute; afin de
3654     rendre le nom du fichier unique, &eacute;vitant ainsi tout conflit lorsque
3655     plusieurs instances d'httpd partagent le m&ecirc;me r&eacute;pertoire de
3656     verrouillage. Par exemple, si le nom de mutex est
3657     <code>mpm-accept</code>, et si le r&eacute;pertoire de verrouillage est
3658     <code>/var/httpd/locks</code>, le nom du fichier verrou pour
3659     l'instance httpd dont le processus parent a pour identifiant 12345
3660     sera <code>/var/httpd/locks/mpm-accept.12345</code>.</p>
3661
3662     <note type="warning"><title>S&eacute;curit&eacute;</title>
3663     <p>Il est conseill&eacute; d'<em>&eacute;viter</em> de placer les fichiers mutex
3664     dans un r&eacute;pertoire o&ugrave; tout le monde peut &eacute;crire comme
3665     <code>/var/tmp</code>, car quelqu'un pourrait initier une attaque
3666     par d&eacute;ni de service et emp&ecirc;cher le serveur de d&eacute;marrer en cr&eacute;ant un
3667     fichier verrou poss&eacute;dant un nom identique &agrave; celui que le serveur va
3668     tenter de cr&eacute;er.</p>
3669     </note>
3670
3671     <p>La table suivante d&eacute;crit les noms de mutex utilis&eacute;s par httpd et
3672     ses modules associ&eacute;s.</p>
3673
3674     <table border="1" style="zebra">
3675         <tr>
3676             <th>Nom mutex</th>
3677             <th>Module(s)</th>
3678             <th>Ressource prot&eacute;g&eacute;e</th>
3679         </tr>
3680         <tr>
3681             <td><code>mpm-accept</code></td>
3682             <td>modules MPM <module>prefork</module> et <module>worker</module></td>
3683             <td>connexions entrantes, afin d'&eacute;viter le probl&egrave;me de
3684             l'afflux de requ&ecirc;tes ; pour plus d'informations, voir la
3685             documentation <a
3686             href="../misc/perf-tuning.html">Am&eacute;lioration des
3687             performances</a></td>
3688         </tr>
3689         <tr>
3690             <td><code>authdigest-client</code></td>
3691             <td><module>mod_auth_digest</module></td>
3692             <td>liste de clients en m&eacute;moire partag&eacute;e</td>
3693         </tr>
3694         <tr>
3695             <td><code>authdigest-opaque</code></td>
3696             <td><module>mod_auth_digest</module></td>
3697             <td>compteur en m&eacute;moire partag&eacute;e</td>
3698         </tr>
3699         <tr>
3700             <td><code>ldap-cache</code></td>
3701             <td><module>mod_ldap</module></td>
3702             <td>cache de r&eacute;sultat de recherche LDAP</td>
3703         </tr>
3704         <tr>
3705             <td><code>rewrite-map</code></td>
3706             <td><module>mod_rewrite</module></td>
3707             <td>communication avec des programmes externes
3708             d'associations de valeurs, afin d'&eacute;viter les interf&eacute;rences
3709             d'entr&eacute;es/sorties entre plusieurs requ&ecirc;tes</td>
3710         </tr>
3711         <tr>
3712             <td><code>ssl-cache</code></td>
3713             <td><module>mod_ssl</module></td>
3714             <td>cache de session SSL</td>
3715         </tr>
3716         <tr>
3717             <td><code>ssl-stapling</code></td>
3718             <td><module>mod_ssl</module></td>
3719             <td>cache de l'&eacute;tiquetage OCSP ("OCSP stapling")</td>
3720         </tr>
3721         <tr>
3722             <td><code>watchdog-callback</code></td>
3723             <td><module>mod_watchdog</module></td>
3724             <td>fonction de rappel d'un module client particulier</td>
3725         </tr>
3726     </table>
3727
3728     <p>Le mot-cl&eacute; <code>OmitPID</code> permet d'emp&ecirc;cher l'addition de
3729     l'identifiant du processus httpd parent au nom du fichier verrou.</p>
3730
3731
3732     <p>Dans l'exemple suivant, le m&eacute;canisme de mutex pour le mutex
3733     mpm-accept est modifi&eacute; pour passer du m&eacute;canisme par d&eacute;faut au
3734     m&eacute;canisme <code>fcntl</code>, avec le fichier verrou associ&eacute; cr&eacute;&eacute;
3735     dans le r&eacute;pertoire <code>/var/httpd/locks</code>. Le m&eacute;canisme de
3736     mutex par d&eacute;faut pour tous les autres mutex deviendra
3737     <code>sysvsem</code>.</p>
3738
3739     <highlight language="config">
3740 Mutex sysvsem default
3741 Mutex fcntl:/var/httpd/locks mpm-accept
3742     </highlight>
3743 </usage>
3744 </directivesynopsis>
3745
3746 <directivesynopsis>
3747 <name>NameVirtualHost</name>
3748 <description>OBSOLETE : D&eacute;finit une adresse IP pour les serveurs virtuels &agrave; base de
3749 nom</description>
3750 <syntax>NameVirtualHost <var>adresse</var>[:<var>port</var>]</syntax>
3751 <contextlist><context>server config</context></contextlist>
3752
3753 <usage>
3754
3755     <p>Avant la version 2.3.11, il &eacute;tait n&eacute;cessaire de d&eacute;finir une
3756     directive <directive>NameVirtualHost</directive> pour indiquer au
3757     serveur qu'une paire adresse IP/port particuli&egrave;re pouvait &ecirc;tre
3758     utilis&eacute;e comme serveur virtuel &agrave; base de nom. Depuis la version
3759     2.3.11, chaque fois qu'une paire adresse IP/port est utilis&eacute;e dans
3760     plusieurs serveurs virtuels, l'h&eacute;bergement virtuel &agrave; base de nom est
3761     automatiquement activ&eacute; pour cette adresse.</p>
3762     
3763     <p>Cette directive n'a actuellement plus aucun effet.</p>
3764 </usage>
3765
3766 <seealso><a href="../vhosts/">Documentation sur les serveurs
3767 virtuels</a></seealso>
3768
3769 </directivesynopsis>
3770
3771 <directivesynopsis>
3772 <name>Options</name>
3773 <description>D&eacute;finit les fonctionnalit&eacute;s disponibles pour un r&eacute;pertoire
3774 particulier</description>
3775 <syntax>Options
3776     [+|-]<var>option</var> [[+|-]<var>option</var>] ...</syntax>
3777 <default>Options FollowSymlinks</default>
3778 <contextlist><context>server config</context><context>virtual
3779 host</context>
3780 <context>directory</context><context>.htaccess</context>
3781 </contextlist>
3782 <override>Options</override>
3783 <compatibility>Avec la version 2.3.11, la valeur par d&eacute;faut passe de All
3784 &agrave; FollowSymlinks</compatibility>
3785
3786 <usage>
3787     <p>La directive <directive>Options</directive> permet de d&eacute;finir
3788     les fonctionnalit&eacute;s de serveur disponibles pour un r&eacute;pertoire
3789     particulier.</p>
3790
3791     <p><var>option</var> peut &ecirc;tre d&eacute;fini &agrave; <code>None</code>, auquel
3792     cas aucune fonctionnalit&eacute; sp&eacute;cifique n'est activ&eacute;e, ou comprendre
3793     une ou plusieurs des options suivantes :</p>
3794
3795     <dl>
3796       <dt><code>All</code></dt>
3797
3798       <dd>Toutes les options except&eacute; <code>MultiViews</code>.</dd>
3799
3800       <dt><code>ExecCGI</code></dt>
3801
3802       <dd>L'ex&eacute;cution de scripts CGI &agrave; l'aide du module
3803       <module>mod_cgi</module> est permise.</dd>
3804
3805       <dt><code>FollowSymLinks</code></dt>
3806
3807       <dd>
3808
3809       Le serveur va suivre les liens symboliques dans le r&eacute;pertoire
3810       concern&eacute;. Il s'agit de la valeur par d&eacute;faut.
3811       <note>
3812       <p>Bien que le serveur suive les liens symboliques, il ne modifie
3813       <em>pas</em> le nom de chemin concern&eacute; d&eacute;fini par la section
3814       <directive type="section"
3815       module="core">Directory</directive>.</p>
3816       
3817       <p>Les options <code>FollowSymLinks</code> et
3818       <code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
3819       sections <directive type="section"
3820       module="core">Directory</directive> ou les fichiers
3821       <code>.htaccess</code>.</p>
3822
3823       <p>Le fait d'omettre cette option ne doit pas &ecirc;tre consid&eacute;r&eacute; comme
3824       une mesure de s&eacute;curit&eacute; efficace, car il existe toujours une
3825       situation de comp&eacute;tition (race condition) entre l'instant o&ugrave; l'on
3826       v&eacute;rifie qu'un chemin n'est pas un lien symbolique, et l'instant o&ugrave;
3827       l'on utilise effectivement ce chemin.</p>
3828       </note></dd>
3829
3830       <dt><code>Includes</code></dt>
3831
3832       <dd>
3833       Les inclusions c&ocirc;t&eacute; serveur (SSI) &agrave; l'aide du module
3834       <module>mod_include</module> sont autoris&eacute;es.</dd>
3835
3836       <dt><code>IncludesNOEXEC</code></dt>
3837
3838       <dd>
3839
3840       Les inclusions c&ocirc;t&eacute; serveur (SSI) sont permises, mais <code>#exec
3841       cmd</code> et <code>#exec cgi</code> sont d&eacute;sactiv&eacute;s.
3842       L'utilisation de <code>#include virtual</code> pour les scripts
3843       CGI est cependant toujours possible depuis des r&eacute;pertoires
3844       d&eacute;finis par <directive
3845       module="mod_alias">ScriptAlias</directive>.</dd>
3846
3847       <dt><code>Indexes</code></dt>
3848
3849       <dd>
3850       Si une URL requise correspond au r&eacute;pertoire concern&eacute;, et si aucun
3851       <directive module="mod_dir">DirectoryIndex</directive> (<em>par
3852       exemple</em> <code>index.html</code>) n'est d&eacute;fini pour ce
3853       r&eacute;pertoire, le module <module>mod_autoindex</module> va renvoyer
3854       un listing format&eacute; du r&eacute;pertoire.</dd>
3855
3856       <dt><code>MultiViews</code></dt>
3857
3858       <dd>
3859       Les vues multiples ("multiviews") &agrave; <a
3860       href="../content-negotiation.html">contenu n&eacute;goci&eacute;</a> &agrave; l'aide du
3861       module <module>mod_negotiation</module> sont autoris&eacute;es.
3862       <note><title>Note</title> <p>Cette option est ignor&eacute;e si elle est
3863       d&eacute;finie en tout autre endroit qu'une section <directive
3864       module="core" type="section">Directory</directive>, car
3865       <module>mod_negotiation</module> a besoin de ressources r&eacute;elles
3866       pour effectuer ses comparaisons et ses &eacute;valuations.</p></note>
3867       
3868       </dd>
3869
3870       <dt><code>SymLinksIfOwnerMatch</code></dt>
3871
3872       <dd>Le serveur ne suivra que les liens symboliques qui renvoient
3873       vers un fichier ou un r&eacute;pertoire dont le propri&eacute;taire est le m&ecirc;me
3874       que celui du lien.
3875
3876       <note><title>Note</title>
3877       <p>Les options <code>FollowSymLinks</code> et
3878       <code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les
3879       sections <directive type="section"
3880       module="core">Directory</directive> ou les fichiers
3881       <code>.htaccess</code>.</p>
3882
3883       <p>Le fait d'omettre cette option ne doit pas &ecirc;tre consid&eacute;r&eacute; comme
3884       une mesure de s&eacute;curit&eacute; efficace, car il existe toujours une
3885       situation de comp&eacute;tition (race condition) entre l'instant o&ugrave; l'on
3886       v&eacute;rifie qu'un chemin n'est pas un lien symbolique, et l'instant o&ugrave;
3887       l'on utilise effectivement ce chemin.</p>
3888       </note> </dd>
3889     </dl>
3890
3891     <p>Normalement, si plusieurs directives
3892     <directive>Options</directive> peuvent s'appliquer &agrave; un r&eacute;pertoire,
3893     c'est la plus sp&eacute;cifique qui est utilis&eacute;e et les autres sont
3894     ignor&eacute;es ; les options ne sont pas fusionn&eacute;es (voir <a
3895     href="../sections.html#mergin">comment les sections sont
3896     fusionn&eacute;es</a>). Elles le sont cependant si <em>toutes</em> les
3897     options de la directive <directive>Options</directive> sont
3898     pr&eacute;c&eacute;d&eacute;es d'un symbole <code>+</code> ou <code>-</code>. Toute
3899     option pr&eacute;c&eacute;d&eacute;e d'un <code>+</code> est ajout&eacute;e &agrave; la liste des
3900     options courantes de mani&egrave;re forc&eacute;e et toute option pr&eacute;c&eacute;d&eacute;e d'un
3901     <code>-</code> est supprim&eacute;e de la liste des options courantes de la
3902     m&ecirc;me mani&egrave;re.</p>
3903
3904     <note><title>Note</title>
3905     <p>M&eacute;langer des <directive>Options</directive> avec <code>+</code>
3906     ou <code>-</code> avec des <directive>Options</directive> sans
3907     <code>+</code> ou <code>-</code> constitue une erreur de syntaxe, et
3908     la v&eacute;rification de la syntaxe au cours du d&eacute;marrage du serveur fera
3909     &eacute;chouer ce dernier.</p>
3910     </note>
3911
3912     <p>Par exemple, sans aucun symbole <code>+</code> et <code>-</code>
3913     :</p>
3914
3915     <highlight language="config">
3916 &lt;Directory "/web/docs"&gt;
3917   Options Indexes FollowSymLinks
3918 &lt;/Directory&gt;
3919
3920 &lt;Directory "/web/docs/spec"&gt;
3921   Options Includes
3922 &lt;/Directory&gt;
3923     </highlight>
3924
3925     <p>ici, seule l'option <code>Includes</code> sera prise en compte
3926     pour le r&eacute;pertoire <code>/web/docs/spec</code>. Par contre, si la
3927     seconde directive <directive>Options</directive> utilise les
3928     symboles <code>+</code> et <code>-</code> :</p>
3929
3930     <highlight language="config">
3931 &lt;Directory "/web/docs"&gt;
3932   Options Indexes FollowSymLinks
3933 &lt;/Directory&gt;
3934
3935 &lt;Directory "/web/docs/spec"&gt;
3936   Options +Includes -Indexes
3937 &lt;/Directory&gt;
3938     </highlight>
3939
3940     <p>alors, les options <code>FollowSymLinks</code> et
3941     <code>Includes</code> seront prises en compte pour le r&eacute;pertoire
3942     <code>/web/docs/spec</code>.</p>
3943
3944     <note><title>Note</title>
3945       <p>L'utilisation de <code>-IncludesNOEXEC</code> ou
3946       <code>-Includes</code> d&eacute;sactive compl&egrave;tement les inclusions c&ocirc;t&eacute;
3947       serveur sans tenir compte des d&eacute;finitions pr&eacute;c&eacute;dentes.</p>
3948     </note>
3949
3950     <p>En l'absence de toute d&eacute;finition d'options, la valeur par d&eacute;faut
3951     est <code>FollowSymlinks</code>.</p>
3952 </usage>
3953 </directivesynopsis>
3954
3955 <directivesynopsis>
3956 <name>Protocol</name>
3957 <description>Protocole pour une socket d'&eacute;coute</description>
3958 <syntax>Protocol <var>protocole</var></syntax>
3959 <contextlist><context>server config</context><context>virtual host</context></contextlist>
3960 <compatibility>Sous Windows, disponible &agrave; partir de la version 2.3.3 du
3961 serveur HTTP Apache.</compatibility>
3962
3963 <usage>
3964     <p>Cette directive permet de sp&eacute;cifier le protocole utilis&eacute; pour une
3965     socket d'&eacute;coute particuli&egrave;re. Le protocole sert &agrave; d&eacute;terminer quel
3966     module doit traiter une requ&ecirc;te, et d'appliquer les optimisations
3967     sp&eacute;cifiques au protocole via la directive
3968     <directive>AcceptFilter</directive>.</p>
3969
3970     <p>Vous ne devez d&eacute;finir le protocole que si vous travaillez avec
3971     des ports non standards ; dans le cas g&eacute;n&eacute;ral, le protocole
3972     <code>http</code> est associ&eacute; au port 80 et le protocole
3973     <code>https</code> au port 443.</p>
3974
3975     <p>Par exemple, si vous travaillez avec le protocole
3976     <code>https</code> sur un port non standard, sp&eacute;cifiez le protocole
3977     de mani&egrave;re explicite :</p>
3978
3979     <highlight language="config">Protocol https</highlight>
3980
3981     <p>Vous pouvez aussi sp&eacute;cifier le protocole via la directive
3982     <directive module="mpm_common">Listen</directive>.</p>
3983 </usage>
3984 <seealso><directive module="core">AcceptFilter</directive></seealso>
3985 <seealso><directive module="mpm_common">Listen</directive></seealso>
3986 </directivesynopsis>
3987
3988
3989 <directivesynopsis>
3990 <name>RLimitCPU</name>
3991 <description>Limite le temps CPU allou&eacute; aux processus initi&eacute;s par les
3992 processus enfants d'Apache httpd</description>
3993 <syntax>RLimitCPU <var>secondes</var>|max [<var>secondes</var>|max]</syntax>
3994 <default>Non d&eacute;fini ; utilise les valeurs par d&eacute;faut du syst&egrave;me
3995 d'exploitation</default>
3996 <contextlist><context>server config</context><context>virtual
3997 host</context>
3998 <context>directory</context><context>.htaccess</context></contextlist>
3999 <override>All</override>
4000
4001 <usage>
4002     <p>Prend 1 ou 2 param&egrave;tres. Le premier definit la limite de
4003     consommation de ressources pour tous les processus, et le second la
4004     consommation de ressources maximale. Les deux param&egrave;tres peuvent
4005     contenir soit un nombre, soit <code>max</code> pour indiquer au
4006     serveur que la limite de consommation correspond &agrave; la valeur
4007     maximale autoris&eacute;e par la configuration du syst&egrave;me d'exploitation.
4008     Pour augmenter la consommation maximale de ressources, le serveur
4009     doit s'ex&eacute;cuter en tant que <code>root</code>, ou se trouver dans sa
4010     phase de d&eacute;marrage.</p>
4011
4012     <p>Cette directive s'applique aux processus initi&eacute;s par les
4013     processus enfants d'Apache httpd qui traitent les requ&ecirc;tes, et non aux
4014     processus enfants eux-m&ecirc;mes. Sont concern&eacute;s les scripts CGI et les
4015     commandes exec des SSI, mais en aucun cas les processus initi&eacute;s par
4016     le processus parent d'Apache httpd comme les journalisations redirig&eacute;es
4017     vers un programme.</p>
4018
4019     <p>Les limites de ressources CPU sont exprim&eacute;es en secondes par
4020     processus.</p>
4021 </usage>
4022 <seealso><directive module="core">RLimitMEM</directive></seealso>
4023 <seealso><directive module="core">RLimitNPROC</directive></seealso>
4024 </directivesynopsis>
4025
4026 <directivesynopsis>
4027 <name>RLimitMEM</name>
4028 <description>Limite la m&eacute;moire allou&eacute;e aux processus initi&eacute;s par les
4029 processus enfants d'Apache httpd</description>
4030 <syntax>RLimitMEM <var>octets</var>|max [<var>octets</var>|max]</syntax>
4031 <default>Non d&eacute;fini ; utilise les valeurs par d&eacute;faut du syst&egrave;me
4032 d'exploitation</default>
4033 <contextlist><context>server config</context><context>virtual
4034 host</context>
4035 <context>directory</context><context>.htaccess</context></contextlist>
4036 <override>All</override>
4037
4038 <usage>
4039     <p>Prend 1 ou 2 param&egrave;tres. Le premier definit la limite de
4040     consommation de ressources pour tous les processus, et le second la
4041     consommation de ressources maximale. Les deux param&egrave;tres peuvent
4042     contenir soit un nombre, soit <code>max</code> pour indiquer au
4043     serveur que la limite de consommation correspond &agrave; la valeur
4044     maximale autoris&eacute;e par la configuration du syst&egrave;me d'exploitation.
4045     Pour augmenter la consommation maximale de ressources, le serveur
4046     doit s'ex&eacute;cuter en tant que <code>root</code>, ou se trouver dans sa
4047     phase de d&eacute;marrage.</p>
4048
4049     <p>Cette directive s'applique aux processus initi&eacute;s par les
4050     processus enfants d'Apache httpd qui traitent les requ&ecirc;tes, et non aux
4051     processus enfants eux-m&ecirc;mes. Sont concern&eacute;s les scripts CGI et les
4052     commandes exec des SSI, mais en aucun cas les processus initi&eacute;s par
4053     le processus parent d'Apache httpd comme les journalisations redirig&eacute;es
4054     vers un programme.</p>
4055
4056     <p>Les limites de ressources m&eacute;moire sont exprim&eacute;es en octets par
4057     processus.</p>
4058 </usage>
4059 <seealso><directive module="core">RLimitCPU</directive></seealso>
4060 <seealso><directive module="core">RLimitNPROC</directive></seealso>
4061 </directivesynopsis>
4062
4063 <directivesynopsis>
4064 <name>RLimitNPROC</name>
4065 <description>Limite le nombre de processus qui peuvent &ecirc;tre initi&eacute;s par
4066 les processus initi&eacute;s par les processus enfants d'Apache httpd</description>
4067 <syntax>RLimitNPROC <var>nombre</var>|max [<var>nombre</var>|max]</syntax>
4068 <default>Unset; uses operating system defaults</default>
4069 <contextlist><context>server config</context><context>virtual
4070 host</context>
4071 <context>directory</context><context>.htaccess</context></contextlist>
4072 <override>All</override>
4073
4074 <usage>
4075     <p>Prend 1 ou 2 param&egrave;tres. Le premier definit la limite de
4076     consommation de ressources pour tous les processus, et le second la
4077     consommation de ressources maximale. Les deux param&egrave;tres peuvent
4078     contenir soit un nombre, soit <code>max</code> pour indiquer au
4079     serveur que la limite de consommation correspond &agrave; la valeur
4080     maximale autoris&eacute;e par la configuration du syst&egrave;me d'exploitation.
4081     Pour augmenter la consommation maximale de ressources, le serveur
4082     doit s'ex&eacute;cuter en tant que <code>root</code>, ou se trouver dans sa
4083     phase de d&eacute;marrage.</p>
4084
4085     <p>Cette directive s'applique aux processus initi&eacute;s par les
4086     processus enfants d'Apache httpd qui traitent les requ&ecirc;tes, et non aux
4087     processus enfants eux-m&ecirc;mes. Sont concern&eacute;s les scripts CGI et les
4088     commandes exec des SSI, mais en aucun cas les processus initi&eacute;s par
4089     le processus parent d'Apache httpd comme les journalisations redirig&eacute;es
4090     vers un programme.</p>
4091
4092     <p>Les limites des processus contr&ocirc;lent le nombre de processus par
4093     utilisateur.</p>
4094
4095     <note><title>Note</title>
4096       <p>Si les processus CGI s'ex&eacute;cutent sous le m&ecirc;me
4097       utilisateur que celui du serveur web, cette
4098       directive va limiter le nombre de processus que le serveur
4099       pourra lui-m&ecirc;me cr&eacute;er. La pr&eacute;sence de messages
4100       <strong><code>cannot fork</code></strong> dans le journal des
4101       erreurs indiquera que la limite est atteinte.</p>
4102     </note>
4103 </usage>
4104 <seealso><directive module="core">RLimitMEM</directive></seealso>
4105 <seealso><directive module="core">RLimitCPU</directive></seealso>
4106 </directivesynopsis>
4107
4108 <directivesynopsis>
4109 <name>ScriptInterpreterSource</name>
4110 <description>Permet de localiser l'interpr&eacute;teur des scripts
4111 CGI</description>
4112 <syntax>ScriptInterpreterSource Registry|Registry-Strict|Script</syntax>
4113 <default>ScriptInterpreterSource Script</default>
4114 <contextlist><context>server config</context><context>virtual
4115 host</context>
4116 <context>directory</context><context>.htaccess</context></contextlist>
4117 <override>FileInfo</override>
4118 <compatibility>Win32 seulement</compatibility>
4119
4120 <usage>
4121     <p>Cette directive permet de contr&ocirc;ler la m&eacute;thode qu'utilise Apache
4122     httpd pour trouver l'interpr&eacute;teur destin&eacute; &agrave; ex&eacute;cuter les scripts CGI. La
4123     d&eacute;finition par d&eacute;faut est <code>Script</code> : ceci indique &agrave;
4124     Apache httpd qu'il doit utiliser l'interpr&eacute;teur pr&eacute;cis&eacute; dans la ligne
4125     shebang du script (la premi&egrave;re ligne, commen&ccedil;ant par
4126     <code>#!</code>). Sur les syst&egrave;mes Win32, cette ligne ressemble
4127     souvent &agrave; ceci :</p>
4128
4129     <highlight language="perl">#!C:/Perl/bin/perl.exe</highlight>
4130
4131     <p>ou simplement, dans le cas o&ugrave; <code>perl</code> est dans le
4132     <code>PATH</code> :</p>
4133
4134     <highlight language="perl">#!perl</highlight>
4135
4136     <p>Avec <code>ScriptInterpreterSource Registry</code>, Windows va
4137     effectuer une recherche dans l'arborescence
4138     <code>HKEY_CLASSES_ROOT</code> de la base de registre avec comme
4139     mot-cl&eacute; l'extension du fichier contenant le script (par exemple
4140     <code>.pl</code>). C'est la commande d&eacute;finie par la sous-cl&eacute; de
4141     registre <code>Shell\ExecCGI\Command</code> ou, si elle n'existe
4142     pas, la sous-cl&eacute; <code>Shell\Open\Command</code> qui est utilis&eacute;e
4143     pour ouvrir le fichier du script. Si ces cl&eacute;s de registre ne sont
4144     pas trouv&eacute;es, Apache httpd utilise la m&eacute;thode de l'option
4145     <code>Script</code>.</p>
4146
4147     <note type="warning"><title>S&eacute;curit&eacute;</title>
4148     <p>Soyez prudent si vous utilisez <code>ScriptInterpreterSource
4149     Registry</code> avec des r&eacute;pertoires faisant l'objet d'un <directive
4150     module="mod_alias">ScriptAlias</directive>, car Apache httpd va essayer
4151     d'ex&eacute;cuter <strong>tous</strong> les fichiers contenus dans
4152     celui-ci. L'option <code>Registry</code> peut causer des appels de
4153     programmes non voulus sur des fichiers non destin&eacute;s &agrave; &ecirc;tre ex&eacute;cut&eacute;s.
4154     Par exemple, la commande par d&eacute;faut open sur les fichiers
4155     <code>.htm</code> sur la plupart des syst&egrave;mes Windows va lancer
4156     Microsoft Internet Explorer ; ainsi, toute requ&ecirc;te HTTP pour un
4157     fichier <code>.htm</code> situ&eacute; dans le r&eacute;pertoire des scripts
4158     va lancer le navigateur en arri&egrave;re-plan sur le serveur, ce qui a
4159     toutes les chances de crasher votre syst&egrave;me dans les minutes qui
4160     suivent.</p>
4161     </note>
4162
4163     <p>L'option <code>Registry-Strict</code>, apparue avec la version
4164     2.0 du serveur HTTP Apache,
4165     agit de mani&egrave;re identique &agrave; <code>Registry</code>, mais n'utilise
4166     que la sous-cl&eacute; <code>Shell\ExecCGI\Command</code>. La pr&eacute;sence de
4167     la cl&eacute; <code>ExecCGI</code> n'&eacute;tant pas syst&eacute;matique, Elle doit &ecirc;tre
4168     d&eacute;finie manuellement dans le registre Windows et &eacute;vite ainsi tout
4169     appel de programme accidentel sur votre syst&egrave;me.</p>
4170 </usage>
4171 </directivesynopsis>
4172
4173 <directivesynopsis>
4174 <name>SeeRequestTail</name>
4175 <description>D&eacute;termine si mod_status affiche les 63 premiers caract&egrave;res
4176 d'une requ&ecirc;te ou les 63 derniers, en supposant que la requ&ecirc;te
4177 elle-m&ecirc;me poss&egrave;de plus de 63 caract&egrave;res.</description>
4178 <syntax>SeeRequestTail On|Off</syntax>
4179 <default>SeeRequestTail Off</default>
4180 <contextlist><context>server config</context></contextlist>
4181
4182 <usage>
4183     <p>Avec <code>ExtendedStatus On</code>, mod_status affiche la
4184     v&eacute;ritable requ&ecirc;te en cours de traitement. Pour des raisons
4185     historiques, seuls 63 caract&egrave;res de la requ&ecirc;te sont r&eacute;ellement
4186     stock&eacute;s &agrave; des fins d'affichage. Cette directive permet de d&eacute;terminer
4187     si ce sont les 63 premiers caract&egrave;res qui seront stock&eacute;s (c'est le
4188     comportement par d&eacute;faut),
4189     ou si ce sont les 63 derniers. Ceci ne s'applique bien entendu que
4190     si la taille de la requ&ecirc;te est de 64 caract&egrave;res ou plus.</p>
4191
4192     <p>Si Apache httpd traite la requ&ecirc;te <code
4193     >GET&nbsp;/disque1/stockage/apache/htdocs/images/rep-images1/nourriture/pommes.jpg&nbsp;HTTP/1.1</code>
4194     , l'affichage de la requ&ecirc;te par mod_status se pr&eacute;sentera comme suit :
4195     </p>
4196
4197     <table border="1">
4198       <tr>
4199         <th>Off (d&eacute;faut)</th>
4200         <td>GET&nbsp;/disque1/stockage/apache/htdocs/images/rep-images1/nourritu</td>
4201       </tr>
4202       <tr>
4203         <th>On</th>
4204         <td>apache/htdocs/images/rep-images1/nourriture/pommes.jpg&nbsp;HTTP/1.1</td>
4205       </tr>
4206     </table>
4207
4208 </usage>
4209
4210 </directivesynopsis>
4211
4212 <directivesynopsis>
4213 <name>ServerAdmin</name>
4214 <description>L'adresse &eacute;lectronique que le serveur inclut dans les
4215 messages d'erreur envoy&eacute;s au client</description>
4216 <syntax>ServerAdmin <var>adresse &eacute;lectronique</var>|<var>URL</var></syntax>
4217 <contextlist><context>server config</context><context>virtual
4218 host</context>
4219 </contextlist>
4220
4221 <usage>
4222     <p>La directive <directive>ServerAdmin</directive> permet de d&eacute;finir
4223     l'adresse de contact que le serveur va inclure dans tout message
4224     d'erreur qu'il envoie au client. Si le programme <code>httpd</code>
4225     ne reconnait pas l'argument fourni comme une URL, il suppose que
4226     c'est une <var>adresse &eacute;lectronique</var>, et lui ajoute le pr&eacute;fixe
4227     <code>mailto:</code> dans les cibles des hyperliens. Il est
4228     cependant recommand&eacute; d'utiliser exclusivement une adresse
4229     &eacute;lectronique, car de nombreux scripts CGI consid&egrave;rent ceci comme
4230     implicite. Si vous utilisez une URL, elle doit pointer vers un autre
4231     serveur que vous contr&ocirc;lez. Dans le cas contraire, les utilisateurs
4232     seraient dans l'impossibilit&eacute; de vous contacter en cas de probl&egrave;me.</p>
4233
4234     <p>Il peut s'av&eacute;rer utile de d&eacute;finir une adresse d&eacute;di&eacute;e &agrave;
4235     l'administration du serveur, par exemple :</p>
4236
4237     <highlight language="config">ServerAdmin www-admin@foo.example.com</highlight>
4238     <p>car les utilisateurs ne mentionnent pas syst&eacute;matiquement le
4239     serveur dont ils parlent !</p>
4240 </usage>
4241 </directivesynopsis>
4242
4243 <directivesynopsis>
4244 <name>ServerAlias</name>
4245 <description>Autres noms d'un serveur utilisables pour atteindre des
4246 serveurs virtuels &agrave; base de nom</description>
4247 <syntax>ServerAlias <var>nom serveur</var> [<var>nom serveur</var>]
4248 ...</syntax>
4249 <contextlist><context>virtual host</context></contextlist>
4250
4251 <usage>
4252     <p>La directive <directive>ServerAlias</directive> permet de d&eacute;finir
4253     les noms alternatifs d'un serveur utilisables pour atteindre des <a
4254     href="../vhosts/name-based.html">serveurs virtuels &agrave; base de
4255     nom</a>. La directive <directive>ServerAlias</directive> peut
4256     contenir des caract&egrave;res g&eacute;n&eacute;riques, si n&eacute;cessaire.</p>
4257
4258     <highlight language="config">
4259 &lt;VirtualHost *:80&gt;
4260   ServerName server.example.com
4261   ServerAlias server server2.example.com server2
4262   ServerAlias *.example.com
4263   UseCanonicalName Off
4264   # ...
4265 &lt;/VirtualHost&gt;
4266     </highlight>
4267     <p>La recherche du serveur virtuel &agrave; base de nom correspondant au
4268     plus pr&egrave;s &agrave; la requ&ecirc;te s'effectue selon l'ordre d'apparition des
4269     directives <directive type="section"
4270     module="core">virtualhost</directive> dans le fichier de
4271     configuration. Le premier serveur virtuel dont le <directive
4272     module="core">ServerName</directive> ou le <directive
4273     module="core">ServerAlias</directive> correspond est choisi, sans
4274     priorit&eacute; particuli&egrave;re si le nom contient des caract&egrave;res g&eacute;n&eacute;riques
4275     (que ce soit pour ServerName ou ServerAlias).</p>
4276
4277     <p>Tous les noms sp&eacute;cifi&eacute;s au sein d'une section
4278     <directive>VirtualHost</directive> sont trait&eacute;s comme un
4279     <directive>ServerAlias</directive> (sans caract&egrave;res g&eacute;n&eacute;riques).</p>
4280
4281 </usage>
4282 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4283 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4284 du serveur HTTP Apache</a></seealso>
4285 </directivesynopsis>
4286
4287 <directivesynopsis>
4288 <name>ServerName</name>
4289 <description>Nom d'h&ocirc;te et port que le serveur utilise pour
4290 s'authentifier lui-m&ecirc;me</description>
4291 <syntax>ServerName [<var>protocole</var>://]<var>nom de domaine
4292 enti&egrave;rement qualifi&eacute;</var>[:<var>port</var>]</syntax>
4293 <contextlist><context>server config</context><context>virtual
4294 host</context>
4295 </contextlist>
4296
4297 <usage>
4298     <p>La directive <directive>ServerName</directive> permet de d&eacute;finir
4299     les protocole, nom d'h&ocirc;te et port d'une requ&ecirc;te que le serveur
4300     utilise pour s'authentifier lui-m&ecirc;me. Ceci est utile lors de la
4301     cr&eacute;ation de redirections d'URLs.</p>
4302
4303     <p>La directive <directive>ServerName</directive> permet aussi
4304     (&eacute;ventuellement en conjonction avec la directive
4305     <directive>ServerAlias</directive>) d'identifier de mani&egrave;re unique
4306     un serveur virtuel, lorsqu'elle est utilis&eacute;e dans un contexte de <a
4307     href="../vhosts/name-based.html">serveurs virtuels &agrave; base de
4308     noms</a>.</p>
4309     
4310     <p>Par exemple, si le nom de la
4311     machine h&eacute;bergeant le serveur web est
4312     <code>simple.example.com</code>, la machine poss&egrave;de l'alias
4313     DNS <code>www.example.com</code>, et si vous voulez que le serveur
4314     web s'identifie avec cet alias, vous devez utilisez la d&eacute;finition
4315     suivante :</p>
4316
4317     <highlight language="config">ServerName www.example.com</highlight>
4318
4319     <p>La directive <directive>ServerName</directive> peut appara&icirc;tre &agrave;
4320     toutes les &eacute;tapes de la d&eacute;finition du serveur. Toute occurrence
4321     annule cependant la pr&eacute;c&eacute;dente (pour ce serveur).</p>
4322
4323     <p>Si la directive <directive>ServerName</directive> n'est pas
4324     d&eacute;finie, le serveur tente de d&eacute;terminer le nom
4325     d'h&ocirc;te visible du point de vue du client en effectuant
4326     une recherche DNS inverse sur une adresse IP du serveur.</p>
4327     
4328     <p>Si la directive
4329     <directive>ServerName</directive> ne pr&eacute;cise pas de port, le serveur
4330     utilisera celui de la requ&ecirc;te entrante. Il est recommand&eacute; de
4331     sp&eacute;cifier un nom d'h&ocirc;te et un port sp&eacute;cifiques &agrave; l'aide de la
4332     directive <directive>ServerName</directive> pour une fiabilit&eacute;
4333     optimale et &agrave; titre pr&eacute;ventif.</p>
4334
4335     <p>Si vous d&eacute;finissez des <a
4336     href="../vhosts/name-based.html">serveurs virtuels &agrave; base de
4337     nom</a>, une directive <directive>ServerName</directive> situ&eacute;e &agrave;
4338     l'int&eacute;rieur d'une section <directive type="section"
4339     module="core">VirtualHost</directive> sp&eacute;cifiera quel nom d'h&ocirc;te
4340     doit appara&icirc;tre dans l'en-t&ecirc;te de requ&ecirc;te <code>Host:</code> pour
4341     pouvoir atteindre ce serveur virtuel.</p>
4342
4343
4344     <p>Parfois, le serveur s'ex&eacute;cute en amont d'un dispositif qui
4345     impl&eacute;mente SSL, comme un mandataire inverse, un r&eacute;partiteur de
4346     charge ou un bo&icirc;tier d&eacute;di&eacute; SSL. Dans ce cas, sp&eacute;cifiez le protocole
4347     <code>https://</code> et le port auquel les clients se connectent
4348     dans la directive <directive>ServerName</directive>, afin de
4349     s'assurer que le serveur g&eacute;n&egrave;re correctement ses URLs
4350     d'auto-identification.
4351     </p>
4352
4353     <p>Voir la description des directives <directive
4354     module="core">UseCanonicalName</directive> et <directive
4355     module="core">UseCanonicalPhysicalPort</directive> pour les
4356     d&eacute;finitions qui permettent de d&eacute;terminer si les URLs
4357     auto-identifiantes (par exemple via le module
4358     <module>mod_dir</module>) vont faire r&eacute;f&eacute;rence au port sp&eacute;cifi&eacute;, ou
4359     au port indiqu&eacute; dans la requ&ecirc;te du client.
4360     </p>
4361
4362     <note type="warning">
4363     <p>Si la valeur de la directive <directive>ServerName</directive> ne
4364     peut pas &ecirc;tre r&eacute;solue en adresse IP, le d&eacute;marrage du serveur
4365     provoquera un avertissement. <code>httpd</code> va alors utiliser le
4366     r&eacute;sultat de la commande syst&egrave;me <code>hostname</code> pour
4367     d&eacute;terminer le nom du serveur, ce qui ne correspondra pratiquement
4368     jamais au nom de serveur que vous souhaitez r&eacute;ellement.</p>
4369     <example>
4370     httpd: Could not reliably determine the server's fully qualified domain name, using rocinante.local for ServerName
4371     </example>
4372     </note>
4373
4374 </usage>
4375
4376 <seealso><a href="../dns-caveats.html">Probl&egrave;mes concernant le DNS et
4377 le serveur HTTP Apache</a></seealso>
4378 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4379 du serveur HTTP Apache</a></seealso>
4380 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4381 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
4382 <seealso><directive module="core">ServerAlias</directive></seealso>
4383 </directivesynopsis>
4384
4385 <directivesynopsis>
4386 <name>ServerPath</name>
4387 <description>Nom de chemin d'URL h&eacute;rit&eacute; pour un serveur virtuel &agrave; base
4388 de nom acc&eacute;d&eacute; par un navigateur incompatible</description>
4389 <syntax>ServerPath <var>chemin d'URL</var></syntax>
4390 <contextlist><context>virtual host</context></contextlist>
4391
4392 <usage>
4393     <p>La directive <directive>ServerPath</directive> permet de d&eacute;finir
4394     le nom de chemin d'URL h&eacute;rit&eacute; d'un h&ocirc;te, &agrave; utiliser avec les <a
4395     href="../vhosts/">serveurs virtuels &agrave; base de nom</a>.</p>
4396 </usage>
4397 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4398 du serveur HTTP Apache</a></seealso>
4399 </directivesynopsis>
4400
4401 <directivesynopsis>
4402 <name>ServerRoot</name>
4403 <description>Racine du r&eacute;pertoire d'installation du
4404 serveur</description>
4405 <syntax>ServerRoot <var>chemin de r&eacute;pertoire</var></syntax>
4406 <default>ServerRoot /usr/local/apache</default>
4407 <contextlist><context>server config</context></contextlist>
4408
4409 <usage>
4410     <p>La directive <directive>ServerRoot</directive> permet de d&eacute;finir
4411     le r&eacute;pertoire dans lequel le serveur est install&eacute;. En particulier,
4412     il contiendra les sous-r&eacute;pertoires <code>conf/</code> et
4413     <code>logs/</code>. Les chemins relatifs indiqu&eacute;s dans les autres
4414     directives (comme <directive
4415     module="core">Include</directive> ou <directive
4416     module="mod_so">LoadModule</directive>) seront d&eacute;finis par
4417     rapport &agrave; ce r&eacute;pertoire.</p>
4418
4419     <highlight language="config">ServerRoot "/home/httpd"</highlight>
4420
4421     <p>La valeur par d&eacute;faut de <directive>ServerRoot</directive> peut
4422     &ecirc;tre modifi&eacute;e via l'argument <code>--prefix</code> de la commande <a
4423     href="../programs/configure.html"><code>configure</code></a>, et de
4424     nombreuses distributions tierces du serveur proposent une valeur
4425     diff&eacute;rente de celles list&eacute;es ci-dessus.</p>
4426
4427 </usage>
4428 <seealso><a href="../invoking.html">the <code>-d</code>
4429     options de <code>httpd</code></a></seealso>
4430 <seealso><a href="../misc/security_tips.html#serverroot">les conseils &agrave;
4431 propos de s&eacute;curit&eacute;</a> pour des informations sur la mani&egrave;re de d&eacute;finir
4432 correctement les permissions sur le r&eacute;pertoire indiqu&eacute; par la directive
4433 <directive>ServerRoot</directive></seealso>
4434 </directivesynopsis>
4435
4436 <directivesynopsis>
4437 <name>ServerSignature</name>
4438 <description>D&eacute;finit un pied de page pour les documents g&eacute;n&eacute;r&eacute;s par le
4439 serveur</description>
4440 <syntax>ServerSignature On|Off|EMail</syntax>
4441 <default>ServerSignature Off</default>
4442 <contextlist><context>server config</context><context>virtual
4443 host</context>
4444 <context>directory</context><context>.htaccess</context>
4445 </contextlist>
4446 <override>All</override>
4447
4448 <usage>
4449     <p>La directive <directive>ServerSignature</directive> permet de
4450     d&eacute;finir une ligne de pied de page fixe pour les documents g&eacute;n&eacute;r&eacute;s
4451     par le serveur (messages d'erreur, listings de r&eacute;pertoires ftp de
4452     <module>mod_proxy</module>, sorties de <module>mod_info</module>,
4453     etc...). Dans le cas d'une cha&icirc;ne de mandataires, l'utilisateur n'a
4454     souvent aucun moyen de d&eacute;terminer lequel des mandataires cha&icirc;n&eacute;s a
4455     g&eacute;n&eacute;r&eacute; un message d'erreur, et c'est une des raisons pour lesquelles
4456     on peut &ecirc;tre amen&eacute; &agrave; ajouter un tel pied de page.</p>
4457
4458     <p>La valeur par d&eacute;faut <code>Off</code> supprime la ligne de pied
4459     de page (et est ainsi compatible avec le comportement des
4460     versions 1.2 et ant&eacute;rieures d'Apache). la valeur <code>On</code>
4461     ajoute simplement une ligne contenant le num&eacute;ro de version du
4462     serveur ainsi que le nom du serveur virtuel issu de la directive
4463     <directive module="core">ServerName</directive>, alors que la valeur
4464     <code>EMail</code> ajoute en plus une r&eacute;f&eacute;rence "mailto:" &agrave;
4465     l'administrateur du document r&eacute;f&eacute;renc&eacute; issu la directive
4466     <directive module="core">ServerAdmin</directive>.</p>
4467
4468     <p>Apr&egrave;s la version 2.0.44, les d&eacute;tails &agrave; propos du num&eacute;ro de
4469     version du serveur sont contr&ocirc;l&eacute;s &agrave; l'aide de la directive
4470     <directive module="core">ServerTokens</directive>.</p>
4471 </usage>
4472 <seealso><directive module="core">ServerTokens</directive></seealso>
4473 </directivesynopsis>
4474
4475 <directivesynopsis>
4476 <name>ServerTokens</name>
4477 <description>Configure l'en-t&ecirc;te <code>Server</code> de la r&eacute;ponse
4478 HTTP</description>
4479 <syntax>ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full</syntax>
4480 <default>ServerTokens Full</default>
4481 <contextlist><context>server config</context></contextlist>
4482
4483 <usage>
4484     <p>Cette directive permet de contr&ocirc;ler le contenu de l'en-t&ecirc;te
4485     <code>Server</code> inclus dans la r&eacute;ponse envoy&eacute;e au client : cet
4486     en-t&ecirc;te peut contenir le type de syst&egrave;me d'exploitation du serveur,
4487     ainsi que des informations &agrave; propos des modules compil&eacute;s avec le
4488     serveur.</p>
4489
4490     <dl>
4491         <dt><code>ServerTokens Full</code> (ou non sp&eacute;cifi&eacute;)</dt>
4492
4493         <dd>Le serveur envoie par exemple : <code>Server: Apache/2.4.2
4494         (Unix) PHP/4.2.2 MyMod/1.2</code></dd>
4495
4496         <dt><code>ServerTokens Prod[uctOnly]</code></dt>
4497
4498       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4499       Apache</code></dd>
4500
4501       <dt><code>ServerTokens Major</code></dt>
4502
4503       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4504       Apache/2</code></dd>
4505
4506       <dt><code>ServerTokens Minor</code></dt>
4507
4508       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4509       Apache/2.4</code></dd>
4510
4511       <dt><code>ServerTokens Min[imal]</code></dt>
4512
4513       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4514       Apache/2.4.2</code></dd>
4515
4516       <dt><code>ServerTokens OS</code></dt>
4517
4518       <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4519       Apache/2.4.2 (Unix)</code></dd>
4520
4521       
4522       
4523     </dl>
4524
4525     <p>Cette d&eacute;finition s'applique &agrave; l'ensemble du serveur et ne peut
4526     &ecirc;tre activ&eacute;e ou d&eacute;sactiv&eacute;e pour tel ou tel serveur virtuel.</p>
4527
4528     <p>Dans les versions post&eacute;rieures &agrave; 2.0.44, cette directive contr&ocirc;le
4529     aussi les informations fournies par la directive <directive
4530     module="core">ServerSignature</directive>.</p>
4531
4532     <note>D&eacute;finir <directive>ServerTokens</directive> &agrave; une
4533     valeur inf&eacute;rieure &agrave; <code>minimal</code> n'est pas
4534     recommand&eacute; car le d&eacute;bogage des probl&egrave;mes
4535     interop&eacute;rationnels n'en sera alors que plus difficile. Notez
4536     aussi que la d&eacute;sactivation de l'en-t&ecirc;te Server:
4537     n'am&eacute;liore en rien la s&eacute;curit&eacute; de votre
4538     serveur ; le concept de "s&eacute;curit&eacute; par
4539     l'obscurit&eacute;" est un mythe et conduit &agrave;
4540     une mauvaise perception de ce qu'est la s&eacute;curit&eacute;.</note>
4541
4542
4543 </usage>
4544 <seealso><directive module="core">ServerSignature</directive></seealso>
4545 </directivesynopsis>
4546
4547 <directivesynopsis>
4548 <name>SetHandler</name>
4549 <description>Force le traitement des fichiers sp&eacute;cifi&eacute;s par un
4550 gestionnaire particulier</description>
4551 <syntax>SetHandler <var>nom gestionnaire</var>|None</syntax>
4552 <contextlist><context>server config</context><context>virtual
4553 host</context>
4554 <context>directory</context><context>.htaccess</context>
4555 </contextlist>
4556 <override>FileInfo</override>
4557
4558 <usage>
4559     <p>Lorsqu'elle se situe &agrave; l'int&eacute;rieur d'un fichier
4560     <code>.htaccess</code>, ou d'une section <directive type="section"
4561     module="core">Directory</directive> ou <directive type="section"
4562     module="core">Location</directive>, cette directive force le
4563     traitement de tous les fichiers sp&eacute;cifi&eacute;s par le <a
4564     href="../handler.html">gestionnaire</a> d&eacute;fini par l'argument
4565     <var>nom gestionnaire</var>. Par exemple, dans le cas d'un
4566     r&eacute;pertoire dont vous voulez interpr&eacute;ter le contenu comme des
4567     fichiers de r&egrave;gles d'images cliquables, sans tenir compte des
4568     extensions, vous pouvez ajouter la ligne suivante dans un fichier
4569     <code>.htaccess</code> de ce r&eacute;pertoire :</p>
4570
4571     <highlight language="config">SetHandler imap-file</highlight>
4572
4573     <p>Autre exemple : si vous voulez que le serveur affiche un
4574     compte-rendu d'&eacute;tat chaque fois qu'une URL du type <code>http://nom
4575     serveur/status</code> est appel&eacute;e, vous pouvez ajouter ceci dans
4576     <code>httpd.conf</code> :</p>
4577
4578     <highlight language="config">
4579 &lt;Location "/status"&gt;
4580   SetHandler server-status
4581 &lt;/Location&gt;
4582     </highlight>
4583
4584     <p>Vous pouvez aussi utiliser cette directive pour associer un
4585     gestionnaire &agrave; des fichiers poss&egrave;dant une extension de nom de
4586     fichier particuli&egrave;re. Par exemple :</p>
4587
4588     <highlight language="config">
4589 &lt;FilesMatch "\.php$"&gt;
4590     SetHandler application/x-httpd-php
4591 &lt;/FilesMatch&gt;
4592     </highlight>
4593
4594     <p>Vous pouvez &eacute;craser la d&eacute;finition ant&eacute;rieure d'une directive
4595     <directive>SetHandler</directive> en utilisant la valeur
4596     <code>None</code>.</p>
4597
4598     <note><title>Note</title>
4599     <p>Comme <directive>SetHandler</directive> l'emporte sur la
4600     d&eacute;finition des gestionnaires par d&eacute;faut, le comportement habituel
4601     consistant &agrave; traiter les URLs se terminant par un slash (/) comme
4602     des r&eacute;pertoires ou des fichiers index est d&eacute;sactiv&eacute;.</p></note>
4603 </usage>
4604
4605 <seealso><directive module="mod_mime">AddHandler</directive></seealso>
4606
4607 </directivesynopsis>
4608
4609 <directivesynopsis>
4610 <name>SetInputFilter</name>
4611 <description>D&eacute;finit les filtres par lesquels vont passer les requ&ecirc;tes
4612 client et les donn&eacute;es POST</description>
4613 <syntax>SetInputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4614 <contextlist><context>server config</context><context>virtual
4615 host</context>
4616 <context>directory</context><context>.htaccess</context>
4617 </contextlist>
4618 <override>FileInfo</override>
4619
4620 <usage>
4621     <p>La directive <directive>SetInputFilter</directive> permet de
4622     d&eacute;finir le ou les filtres par lesquels vont passer les requ&ecirc;tes
4623     client et les donn&eacute;es POST au moment o&ugrave; le serveur les re&ccedil;oit. Cette
4624     d&eacute;finition vient en ajout &agrave; tout autre filtre d&eacute;fini en
4625     quelqu'endroit que ce soit, y compris via la directive <directive
4626     module="mod_mime">AddInputFilter</directive>.</p>
4627
4628     <p>Si la directive comporte plusieurs filtres, ils doivent &ecirc;tre
4629     s&eacute;par&eacute;s par des points-virgules, et sp&eacute;cifi&eacute;s selon l'ordre dans
4630     lequel vous souhaitez les voir agir sur les contenus.</p>
4631 </usage>
4632 <seealso>documentation des <a
4633 href="../filter.html">Filtres</a></seealso>
4634 </directivesynopsis>
4635
4636 <directivesynopsis>
4637 <name>SetOutputFilter</name>
4638 <description>D&eacute;finit les filtres par lesquels vont passer les r&eacute;ponses
4639 du serveur</description>
4640 <syntax>SetOutputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4641 <contextlist><context>server config</context><context>virtual
4642 host</context>
4643 <context>directory</context><context>.htaccess</context>
4644 </contextlist>
4645 <override>FileInfo</override>
4646
4647 <usage>
4648     <p>La directive <directive>SetOutputFilter</directive> permet de
4649     d&eacute;finir les filtres par lesquels vont passer les r&eacute;ponses du serveur
4650     avant d'&ecirc;tre envoy&eacute;es au client. Cette d&eacute;finition vient en ajout &agrave;
4651     tout autre filtre d&eacute;fini en quelqu'endroit que ce soit, y compris
4652     via la directive <directive
4653     module="mod_mime">AddOutputFilter</directive>.</p>
4654
4655     <p>Par exemple, la configuration suivante va traiter tous les
4656     fichiers du r&eacute;pertoire <code>/www/data/</code> comme des inclusions
4657     c&ocirc;t&eacute; serveur (SSI) :</p>
4658
4659     <highlight language="config">
4660 &lt;Directory "/www/data/"&gt;
4661   SetOutputFilter INCLUDES
4662 &lt;/Directory&gt;
4663     </highlight>
4664
4665     <p>Si la directive comporte plusieurs filtres, ils doivent &ecirc;tre
4666     s&eacute;par&eacute;s par des points-virgules, et sp&eacute;cifi&eacute;s selon l'ordre dans
4667     lequel vous souhaitez les voir agir sur les contenus.</p>
4668 </usage>
4669 <seealso><a href="../filter.html">Filters</a> documentation</seealso>
4670 </directivesynopsis>
4671
4672 <directivesynopsis>
4673 <name>TimeOut</name>
4674 <description>Temps pendant lequel le serveur va attendre certains
4675 &eacute;v&egrave;nements avant de consid&eacute;rer qu'une requ&ecirc;te a &eacute;chou&eacute;</description>
4676 <syntax>TimeOut <var>secondes</var></syntax>
4677 <default>TimeOut 60</default>
4678 <contextlist><context>server config</context><context>virtual
4679 host</context></contextlist>
4680
4681 <usage>
4682     <p>La directive <directive>TimeOut</directive> permet de d&eacute;finir le
4683     temps maximum pendant lequel Apache httpd va attendre des entr&eacute;es/sorties
4684     selon les circonstances :</p>
4685
4686     <ol>
4687       <li>Lors de la lecture de donn&eacute;es en provenance du client, le
4688       temps maximum jusqu'&agrave; l'arriv&eacute;e d'un paquet TCP si le tampon est
4689       vide.</li>
4690
4691       <li>Lors de l'&eacute;criture de donn&eacute;es destin&eacute;es au client, le temps
4692       maximum jusqu'&agrave; l'arriv&eacute;e de l'accus&eacute;-r&eacute;ception d'un paquet si le
4693       tampon d'envoi est plein.</li>
4694
4695       <li>Avec <module>mod_cgi</module> et <module>mod_cgid</module>, le temps d'attente maximum des
4696       sorties d'un script CGI.</li>
4697
4698       <li>Avec <module>mod_ext_filter</module>, le temps d'attente
4699       maximum des sorties d'un processus de filtrage.</li>
4700
4701       <li>Avec <module>mod_proxy</module>, la valeur du d&eacute;lai par d&eacute;faut
4702       si <directive module="mod_proxy">ProxyTimeout</directive> n'est
4703       pas d&eacute;fini.</li>
4704     </ol>
4705
4706 </usage>
4707 </directivesynopsis>
4708
4709 <directivesynopsis>
4710 <name>TraceEnable</name>
4711 <description>D&eacute;termine le comportement des requ&ecirc;tes
4712 <code>TRACE</code></description>
4713 <syntax>TraceEnable <var>[on|off|extended]</var></syntax>
4714 <default>TraceEnable on</default>
4715 <contextlist><context>server config</context><context>virtual host</context></contextlist>
4716
4717 <usage>
4718     <p>Cette directive l'emporte sur le comportement de
4719     <code>TRACE</code> pour le noyau du serveur et
4720     <module>mod_proxy</module>. La d&eacute;finition par d&eacute;faut
4721     <code>TraceEnable on</code> permet des requ&ecirc;tes <code>TRACE</code>
4722     selon la RFC 2616, qui interdit d'ajouter tout corps &agrave; la requ&ecirc;te.
4723     La d&eacute;finition <code>TraceEnable off</code> indique au noyau du
4724     serveur et &agrave; <module>mod_proxy</module> de retourner un code
4725     d'erreur <code>405</code> (M&eacute;thode non autoris&eacute;e) au client.</p>
4726
4727     <p>En fait, et &agrave; des fins de test et de diagnostic seulement, on
4728     peut autoriser l'ajout d'un corps de requ&ecirc;te &agrave; l'aide de la
4729     d&eacute;finition non standard <code>TraceEnable extended</code>. Le noyau
4730     du serveur (dans le cas d'un serveur d'origine) va limiter la taille
4731     du corps de requ&ecirc;te &agrave; 64k (plus 8k pour les en-t&ecirc;tes de
4732     fractionnement si <code>Transfer-Encoding: chunked</code> est
4733     utilis&eacute;). Le noyau du serveur va reproduire l'ensemble des en-t&ecirc;tes,
4734     y compris les en-t&ecirc;tes de fractionnement avec le corps de la
4735     r&eacute;ponse. Dans le cas d'un serveur mandataire, la taille du corps de
4736     requ&ecirc;te n'est pas limit&eacute;e &agrave; 64k.</p>
4737
4738     <note><title>Note</title>
4739     <p>Bien que certains pr&eacute;tendent le contraire, <code>TRACE</code> ne
4740     constitue pas une vuln&eacute;rabilit&eacute; en mati&egrave;re de s&eacute;curit&eacute;, et il n'y a
4741     aucune raison suffisante pour le d&eacute;sactiver, ce qui rendrait
4742     votre serveur non conforme.</p>
4743     </note>
4744 </usage>
4745 </directivesynopsis>
4746
4747 <directivesynopsis>
4748 <name>UnDefine</name>
4749 <description>Invalide la d&eacute;finition d'une variable</description>
4750 <syntax>UnDefine <var>nom-variable</var></syntax>
4751 <contextlist><context>server config</context>
4752 <context>virtual host</context></contextlist>
4753
4754 <usage>
4755     <p>Annule l'effet d'une directive <directive
4756     module="core">Define</directive> ou d'un argument <code>-D</code> de
4757     <program>httpd</program> en invalidant l'existence de la variable
4758     correspondante.</p>
4759     <p>On peut utiliser cette directive pour inverser l'effet d'une
4760     section <directive module="core" type="section">IfDefine</directive>
4761     sans avoir &agrave; modifier les arguments <code>-D</code> dans les scripts
4762     de d&eacute;marrage.</p>
4763     <p>Si cette directive est d&eacute;finie au sein d'un bloc VirtualHost, les
4764     changements qu'elle induit sont visibles de toute directive
4765     ult&eacute;rieure, au del&agrave; de tout bloc VirtualHost.</p>    
4766 </usage>
4767 </directivesynopsis>
4768
4769 <directivesynopsis>
4770 <name>UseCanonicalName</name>
4771 <description>D&eacute;finit la mani&egrave;re dont le serveur d&eacute;termine son propre nom
4772 et son port</description>
4773 <syntax>UseCanonicalName On|Off|DNS</syntax>
4774 <default>UseCanonicalName Off</default>
4775 <contextlist><context>server config</context><context>virtual
4776 host</context>
4777 <context>directory</context></contextlist>
4778
4779 <usage>
4780     <p>Dans de nombreuses situations, Apache httpd doit construire une URL
4781     <em>auto-identifiante</em> -- c'est &agrave; dire une URL qui fait
4782     r&eacute;f&eacute;rence au serveur lui-m&ecirc;me. Avec <code>UseCanonicalName
4783     On</code>, Apache httpd va utiliser le nom d'h&ocirc;te et le port sp&eacute;cifi&eacute;s par
4784     la directive <directive module="core">ServerName</directive> pour
4785     construire le nom canonique du serveur. Ce nom est utilis&eacute; dans
4786     toutes les URLs auto-identifiantes, et affect&eacute; aux variables
4787     <code>SERVER_NAME</code> et <code>SERVER_PORT</code> dans les
4788     programmes CGI.</p>
4789
4790     <p>Avec <code>UseCanonicalName Off</code>, Apache httpd va construire ses
4791     URLs auto-identifiantes &agrave; l'aide du nom d'h&ocirc;te et du port fournis
4792     par le client, si ce dernier en a fourni un (dans la n&eacute;gative,
4793     Apache utilisera le nom canonique, de la m&ecirc;me mani&egrave;re que
4794     ci-dessus). Ces valeurs sont les m&ecirc;mes que celles qui sont utilis&eacute;es
4795     pour impl&eacute;menter les <a
4796     href="../vhosts/name-based.html">serveurs virtuels &agrave; base de
4797     nom</a>, et sont disponibles avec les m&ecirc;mes clients. De m&ecirc;me, les
4798     variables CGI <code>SERVER_NAME</code> et <code>SERVER_PORT</code>
4799     seront affect&eacute;es des valeurs fournies par le client.</p>
4800
4801     <p>Cette directive peut s'av&eacute;rer utile, par exemple, sur un serveur
4802     intranet auquel les utilisateurs se connectent en utilisant des noms
4803     courts tels que <code>www</code>. Si les utilisateurs tapent un nom
4804     court suivi d'une URL qui fait r&eacute;f&eacute;rence &agrave; un r&eacute;pertoire, comme
4805     <code>http://www/splat</code>, <em>sans le slash terminal</em>, vous
4806     remarquerez qu'Apache httpd va les rediriger vers
4807     <code>http://www.example.com/splat/</code>. Si vous avez activ&eacute;
4808     l'authentification, ceci va obliger l'utilisateur &agrave; s'authentifier
4809     deux fois (une premi&egrave;re fois pour <code>www</code> et une seconde
4810     fois pour <code>www.example.com</code> -- voir <a
4811     href="http://wiki.apache.org/httpd/FAQ#Why_does_Apache_ask_for_my_password_twice_before_serving_a_file.3F">la
4812     foire aux questions sur ce sujet pour plus d'informations</a>).
4813     Par contre, si <directive>UseCanonicalName</directive> est d&eacute;finie &agrave;
4814     <code>Off</code>, Apache httpd redirigera l'utilisateur vers
4815     <code>http://www/splat/</code>.</p>
4816
4817     <p>Pour l'h&eacute;bergement virtuel en masse &agrave; base d'adresse IP, on
4818     utilise une troisi&egrave;me option, <code>UseCanonicalName
4819     DNS</code>, pour supporter les clients anciens qui ne
4820     fournissent pas d'en-t&ecirc;te <code>Host:</code>. Apache httpd effectue alors
4821     une recherche DNS inverse sur l'adresse IP du serveur auquel le
4822     client s'est connect&eacute; afin de construire ses URLs
4823     auto-identifiantes.</p>
4824
4825     <note type="warning"><title>Avertissement</title>
4826     <p>Les programmes CGI risquent d'&ecirc;tre perturb&eacute;s par cette option
4827     s'ils tiennent compte de la variable <code>SERVER_NAME</code>. Le
4828     client est pratiquement libre de fournir la valeur qu'il veut comme
4829     nom d'h&ocirc;te. Mais si le programme CGI n'utilise
4830     <code>SERVER_NAME</code> que pour construire des URLs
4831     auto-identifiantes, il ne devrait pas y avoir de probl&egrave;me.</p>
4832     </note>
4833 </usage>
4834 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
4835 <seealso><directive module="core">ServerName</directive></seealso>
4836 <seealso><directive module="mpm_common">Listen</directive></seealso>
4837 </directivesynopsis>
4838
4839 <directivesynopsis>
4840 <name>UseCanonicalPhysicalPort</name>
4841 <description>D&eacute;finit la mani&egrave;re dont le serveur
4842 d&eacute;termine son propre port</description>
4843 <syntax>UseCanonicalPhysicalPort On|Off</syntax>
4844 <default>UseCanonicalPhysicalPort Off</default>
4845 <contextlist><context>server config</context><context>virtual
4846 host</context>
4847 <context>directory</context></contextlist>
4848
4849 <usage>
4850     <p>Dans de nombreuses situations, Apache httpd doit construire une URL
4851     <em>auto-identifiante</em> -- c'est &agrave; dire une URL qui fait
4852     r&eacute;f&eacute;rence au serveur lui-m&ecirc;me. Avec <code>UseCanonicalPhysicalPort
4853     On</code>, Apache httpd va fournir le num&eacute;ro de port physique r&eacute;el utilis&eacute;
4854     par la requ&ecirc;te en tant que port potentiel, pour construire le port
4855     canonique afin que le serveur puisse alimenter la directive
4856     <directive module="core">UseCanonicalName</directive>. Avec
4857     <code>UseCanonicalPhysicalPort Off</code>, Apache httpd n'utilisera pas le
4858     num&eacute;ro de port physique r&eacute;el, mais au contraire se r&eacute;f&eacute;rera aux
4859     informations de configuration pour construire un num&eacute;ro de port
4860     valide.</p>
4861
4862     <note><title>Note</title>
4863     <p>L'ordre dans lequel s'effectue la recherche quand on utilise le
4864     port physique est le suivant :</p>
4865      <dl>
4866      <dt><code>UseCanonicalName On</code></dt>
4867      <dd>
4868      <ol>
4869       <li>Port indiqu&eacute; dans <directive module="core">Servername</directive></li>
4870       <li>Port physique</li>
4871       <li>Port par d&eacute;faut</li>
4872      </ol>
4873      </dd>
4874      <dt><code>UseCanonicalName Off | DNS</code></dt>
4875      <dd>
4876      <ol>
4877       <li>Port sp&eacute;cifi&eacute; dans l'en-t&ecirc;te <code>Host:</code></li>
4878       <li>Port physique</li>
4879       <li>Port sp&eacute;cifi&eacute; par <directive module="core">Servername</directive></li>
4880       <li>Port par d&eacute;faut</li>
4881      </ol>
4882      </dd>
4883      </dl>
4884
4885     <p>Avec <code>UseCanonicalPhysicalPort Off</code>, on reprend
4886     l'ordre ci-dessus en supprimant "Port physique".</p>
4887     </note>
4888
4889 </usage>
4890 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4891 <seealso><directive module="core">ServerName</directive></seealso>
4892 <seealso><directive module="mpm_common">Listen</directive></seealso>
4893 </directivesynopsis>
4894
4895 <directivesynopsis type="section">
4896 <name>VirtualHost</name>
4897 <description>Contient des directives qui ne s'appliquent qu'&agrave; un nom
4898 d'h&ocirc;te sp&eacute;cifique ou &agrave; une adresse IP</description>
4899 <syntax>&lt;VirtualHost
4900     <var>adresse IP</var>[:<var>port</var>] [<var>adresse
4901     IP</var>[:<var>port</var>]] ...&gt; ...
4902     &lt;/VirtualHost&gt;</syntax>
4903 <contextlist><context>server config</context></contextlist>
4904
4905 <usage>
4906     <p>Les balises <directive type="section">VirtualHost</directive> et
4907     <code>&lt;/VirtualHost&gt;</code> permettent de rassembler un groupe
4908     de directives qui ne s'appliquent qu'&agrave; un serveur virtuel
4909     particulier. Toute directive autoris&eacute;e dans un contexte de serveur
4910     virtuel peut &ecirc;tre utilis&eacute;e. Lorsque le serveur re&ccedil;oit un requ&ecirc;te
4911     pour un document h&eacute;berg&eacute; par un serveur virtuel particulier, il
4912     applique les directives de configuration rassembl&eacute;es dans la section
4913     <directive type="section">VirtualHost</directive>. <var>adresse
4914     IP</var> peut &ecirc;tre une des entit&eacute;s suivantes, &eacute;ventuellement suivies
4915     d'un caract&egrave;re ':' et d'un num&eacute;ro de port (ou *) :</p>
4916
4917     <ul>
4918       <li>L'adresse IP du serveur virtuel ;</li>
4919
4920       <li>Un nom de domaine enti&egrave;rement qualifi&eacute; correspondant &agrave;
4921       l'adresse IP du serveur virtuel (non recommand&eacute;) ;</li>
4922
4923       <li>Le caract&egrave;re <code>*</code>, qui agit comme un
4924       caract&egrave;re g&eacute;n&eacute;rique, et correspond &agrave; toute adresse IP.</li>
4925
4926       <li>La cha&icirc;ne <code>_default_</code>, dont la signification est
4927       identique &agrave; celle du caract&egrave;re <code>*</code></li>
4928
4929     </ul>
4930
4931     <highlight language="config">
4932 &lt;VirtualHost 10.1.2.3:80&gt;
4933   ServerAdmin webmaster@host.example.com
4934   DocumentRoot "/www/docs/host.example.com"
4935   ServerName host.example.com
4936   ErrorLog "logs/host.example.com-error_log"
4937   TransferLog "logs/host.example.com-access_log"
4938 &lt;/VirtualHost&gt;
4939     </highlight>
4940
4941
4942     <p>Les adresses IPv6 doivent &ecirc;tre entour&eacute;es de crochets car dans le
4943     cas contraire, un &eacute;ventuel port optionnel ne pourrait pas &ecirc;tre
4944     d&eacute;termin&eacute;. Voici un exemple de serveur virtuel avec adresse IPv6
4945     :</p>
4946
4947     <highlight language="config">
4948 &lt;VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80&gt;
4949   ServerAdmin webmaster@host.example.com
4950   DocumentRoot "/www/docs/host.example.com"
4951   ServerName host.example.com
4952   ErrorLog "logs/host.example.com-error_log"
4953   TransferLog "logs/host.example.com-access_log"
4954 &lt;/VirtualHost&gt;
4955     </highlight>
4956
4957     <p>Chaque serveur virtuel doit correspondre &agrave; une adresse IP, un
4958     port ou un nom d'h&ocirc;te sp&eacute;cifique ; dans le premier cas, le serveur
4959     doit &ecirc;tre configur&eacute; pour recevoir les paquets IP de plusieurs
4960     adresses (si le serveur n'a qu'une interface r&eacute;seau, on peut
4961     utiliser &agrave; cet effet la commande <code>ifconfig alias</code> -- si
4962     votre syst&egrave;me d'exploitation le permet).</p>
4963
4964     <note><title>Note</title>
4965     <p>L'utilisation de la directive <directive
4966     type="section">VirtualHost</directive> n'affecte en rien les
4967     adresses IP sur lesquelles Apache httpd est en &eacute;coute. Vous devez vous
4968     assurer que les adresses des serveurs virtuels sont bien incluses
4969     dans la liste des adresses pr&eacute;cis&eacute;es par la directive <directive
4970     module="mpm_common">Listen</directive>.</p>
4971     </note>
4972     
4973     <p>Tout bloc <directive
4974     type="section">VirtualHost</directive> doit comporter une directive
4975     <directive module="core">ServerName</directive>. Dans le cas
4976     contraire, le serveur virtuel h&eacute;ritera de la valeur de la directive
4977     <directive module="core">ServerName</directive> issue de la
4978     configuration du serveur principal.</p>
4979
4980     <p>A l'arriv&eacute;e d'une requ&ecirc;te, le serveur tente de la
4981     faire prendre en compte par la section <directive
4982     type="section">VirtualHost</directive> qui correspond le mieux en ne
4983     se basant que sur la paire adresse IP/port. Les cha&icirc;nes sans
4984     caract&egrave;res g&eacute;n&eacute;riques l'emportent sur celles qui en contiennent. Si
4985     aucune correspondance du point de vue de l'adresse IP/port n'est
4986     trouv&eacute;e, c'est la configuration du serveur "principal" qui sera
4987     utilis&eacute;e.</p>
4988     
4989     <p>Si plusieurs serveurs virtuels correspondent du point de vue de
4990     l'adresse IP/port, le serveur s&eacute;lectionne celui qui correspond le
4991     mieux du point de vue du nom d'h&ocirc;te de la requ&ecirc;te. Si aucune
4992     correspondance du point de vue du nom d'h&ocirc;te n'est trouv&eacute;e, c'est le
4993     premier serveur virtuel dont l'adresse IP/port correspond qui sera
4994     utilis&eacute;. Par voie de cons&eacute;quence, le premier serveur virtuel
4995     comportant une certaine paire adresse IP/port est le serveur virtuel
4996     par d&eacute;faut pour cette paire adresse IP/port.</p>
4997
4998     <note type="warning"><title>S&eacute;curit&eacute;</title>
4999     <p>Voir le document sur les <a
5000     href="../misc/security_tips.html">conseils &agrave; propos de s&eacute;curit&eacute;</a>
5001     pour une description d&eacute;taill&eacute;e des raisons pour lesquelles la
5002     s&eacute;curit&eacute; de votre serveur pourrait &ecirc;tre compromise, si le r&eacute;pertoire
5003     contenant les fichiers journaux est inscriptible par tout autre
5004     utilisateur que celui qui d&eacute;marre le serveur.</p>
5005     </note>
5006 </usage>
5007 <seealso><a href="../vhosts/">Documentation des serveurs virtuels
5008 du serveur HTTP Apache</a></seealso>
5009 <seealso><a href="../dns-caveats.html">Probl&egrave;mes concernant le DNS et
5010 le serveur HTTP Apache</a></seealso>
5011 <seealso><a href="../bind.html">D&eacute;finition des adresses et ports
5012 qu'utilise le serveur HTTP Apache</a></seealso>
5013 <seealso><a href="../sections.html">Comment fonctionnent les sections
5014 &lt;Directory&gt;, &lt;Location&gt; et &lt;Files&gt;</a> pour une
5015 explication de la mani&egrave;re dont ces diff&eacute;rentes sections se combinent
5016 entre elles &agrave; la r&eacute;ception d'une requ&ecirc;te</seealso>
5017 </directivesynopsis>
5018
5019 <directivesynopsis>
5020 <name>RegisterHttpMethod</name>
5021 <description>Enregistrement de m&eacute;thodes HTTP non standards</description>
5022 <syntax>RegisterHttpMethod <var>m&eacute;thode</var> [<var>m&eacute;thode</var> [...]]</syntax>
5023 <contextlist><context>server config</context></contextlist>
5024
5025 <usage>
5026 <p>Normalement, les m&eacute;thodes HTTP non conformes aux RFCs correspondantes
5027 sont rejet&eacute;es au cours du traitement de la requ&ecirc;te par HTTPD. Pour
5028 &eacute;viter ceci, les modules peuvent enregistrer les m&eacute;thodes HTTP non
5029 standards qu'ils supportent. La directive
5030 <directive>RegisterHttpMethod</directive> permet d'enregistrer de telles
5031 m&eacute;thodes manuellement. Ceci peut s'av&eacute;rer utile si de telle m&eacute;thodes
5032 doivent &ecirc;tre utilis&eacute;es dans un traitement externe, comme un script CGI.</p>
5033 </usage>
5034 </directivesynopsis>
5035
5036 <directivesynopsis>
5037 <name>Warning</name>
5038 <description>Message d'avertissement personnalisable en provenance de
5039 l'interpr&eacute;tation du fichier de configuration</description>
5040 <syntax>Warning <var>message</var></syntax>
5041 <contextlist><context>server config</context><context>virtual host</context>
5042 <context>directory</context><context>.htaccess</context>
5043 </contextlist>
5044 <compatibility>Disponible &agrave; partir de la version 2.5 du serveur HTTP
5045 Apache.</compatibility>
5046
5047 <usage>
5048     <p>Cette directive permet de signaler la d&eacute;tection d'un probl&egrave;me de
5049     configuration en g&eacute;n&eacute;rant un message d'avertissement
5050     personnalisable. L'interpr&eacute;tation du fichier de configuration n'est
5051     pas interrompue. Un exemple typique d'utilisation est la
5052     v&eacute;rification de la d&eacute;finition de certaines options d&eacute;finies par
5053     l'utilisateur, et l'envoi d'un avertissement &eacute;ventuel.</p>
5054
5055     <highlight language="config">
5056 # Exemple
5057 # signale que ReverseProxy n'est pas d&eacute;fini
5058 &lt;IfDefine !ReverseProxy&gt;
5059   Warning "le mandataire inverse n'a pas &eacute;t&eacute; sp&eacute;cifi&eacute;, veuillez corriger
5060   si n&eacute;cessaire"
5061 &lt;/IfDefine&gt;
5062
5063 &lt;IfDefine ReverseProxy&gt;
5064   # d&eacute;finition de la configuration personnalis&eacute;e du mandataire
5065 &lt;/IfDefine&gt;
5066     </highlight>
5067
5068 </usage>
5069 </directivesynopsis>
5070
5071 <directivesynopsis>
5072 <name>MergeTrailers</name>
5073 <description>D&eacute;termine si les donn&eacute;es suppl&eacute;mentaires (trailers) sont
5074 fusionn&eacute;es avec les en-t&ecirc;tes</description>
5075 <syntax>MergeTrailers [on|off]</syntax>
5076 <default>MergeTrailers off</default>
5077 <contextlist><context>server config</context><context>virtual host</context></contextlist>
5078 <compatibility>Disponible &agrave; partir de la version 2.4.10 du serveur HTTP
5079 Apache</compatibility>
5080
5081 <usage>
5082     <p>Cette directive permet de contr&ocirc;ler la fusion des donn&eacute;es HTTP
5083     suppl&eacute;mentaires (trailers) avec la repr&eacute;sentation interne des
5084     en-t&ecirc;tes. Cette fusion intervient lorsque le corps de la requ&ecirc;te a
5085     &eacute;t&eacute; enti&egrave;rement re&ccedil;u, bien longtemps apr&egrave;s que la majeure partie du
5086     traitement des en-t&ecirc;tes ait une chance de pouvoir examiner ou
5087     modifier les en-t&ecirc;tes de la requ&ecirc;te.</p>
5088     <p>Cette option a &eacute;t&eacute; introduite dans un souci de compatibilit&eacute; avec
5089     les versions ant&eacute;rieures &agrave; 2.4.10, o&ugrave; les donn&eacute;es suppl&eacute;mentaires
5090     &eacute;taient syst&eacute;matiquement fusionn&eacute;es avec les en-t&ecirc;tes de la requ&ecirc;te.</p>
5091 </usage>
5092 </directivesynopsis>
5093
5094
5095 </modulesynopsis>