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