2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1297959:1301033 (outdated) -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
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
16 http://www.apache.org/licenses/LICENSE-2.0
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.
25 <modulesynopsis metafile="core.xml.meta">
28 <description>Fonctionnalités de base du serveur HTTP Apache toujours
29 disponibles</description>
33 <name>AcceptFilter</name>
34 <description>Permet d'optimiser la configuration d'une socket pour
35 l'é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 <compatibility>Disponible depuis la version 2.3.3 sous Windows et 2.1.5
40 sur les autres plates-formes.</compatibility>
43 <p>Cette directive permet d'effectuer une optimisation de la socket
44 d'écoute d'un type de protocole en fonction du système
45 d'exploitation. Le but premier est de faire en sorte que le noyau
46 n'envoie pas de socket au processus du serveur jusqu'à ce que
47 des données soient reçues, ou qu'une requête HTTP complète soit mise
48 en tampon. Seuls les <a
49 href="http://www.freebsd.org/cgi/man.cgi?query=accept_filter&
50 sektion=9">Filtres d'acceptation de FreeBSD</a>, le filtre plus
51 primitif <code>TCP_DEFER_ACCEPT</code> sous Linux, et la version
52 optimisée d'AcceptEx() de Windows sont actuellement supportés.</p>
54 <p>L'utilisation de l'argument <code>none</code> va désactiver tout
55 filtre d'acceptation pour ce protocole. Ceci s'avère utile pour les
56 protocoles qui nécessitent l'envoi de données par le serveur en
57 premier, comme <code>ftp:</code> ou <code>nntp</code>:</p>
58 <example>AcceptFilter nntp none</example>
60 <p>Les noms de protocoles par défaut sont <code>https</code> pour le
61 port 443 et <code>http</code> pour tous les autres ports. Pour
62 spécifier un autre protocole à utiliser avec un port en écoute,
63 ajoutez l'argument <var>protocol</var> à la directive <directive
64 module="mpm_common">Listen</directive>.</p>
66 <p>Sous FreeBSD, les valeurs par défaut sont :</p>
68 AcceptFilter http httpready <br/>
69 AcceptFilter https dataready
72 <p>Le filtre d'acceptation <code>httpready</code> met en tampon des
73 requêtes HTTP entières au niveau du noyau. Quand une requête
74 entière a été reçue, le noyau l'envoie au serveur. Voir la page de
76 href="http://www.freebsd.org/cgi/man.cgi?query=accf_http&
77 sektion=9">accf_http(9)</a> pour plus de détails. Comme les requêtes
78 HTTPS sont chiffrées, celles-ci n'autorisent que le filtre <a
79 href="http://www.freebsd.org/cgi/man.cgi?query=accf_data&
80 sektion=9">accf_data(9)</a>.</p>
82 <p>Sous Linux, les valeurs par défaut sont :</p>
84 AcceptFilter http data <br/>
85 AcceptFilter https data
88 <p>Le filtre <code>TCP_DEFER_ACCEPT</code> de Linux ne supporte pas
89 la mise en tampon des requê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étails, voir la page de
93 href="http://homepages.cwi.nl/~aeb/linux/man2html/man7/
94 tcp.7.html">tcp(7)</a>.</p>
96 <p>Sous Windows, les valeurs par défaut sont :</p>
98 AcceptFilter http data <br/>
99 AcceptFilter https data
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éseau entre
106 les connexions. <code>data</code> attend jusqu'à ce que les données
107 aient été transmises comme décrit plus haut, et le tampon de données
108 initiales ainsi que les adresses réseau finales sont tous extraits
109 grâce à une seule invocation d'AcceptEx(). <code>connect</code>
110 utilise l'API AcceptEx(), extrait aussi les adresses réseau finales,
111 mais à l'instar de <code>none</code>, la valeur <code>connect</code>
112 n'attend pas la transmission des données initiales.</p>
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ère utile pour les interfaces réseau dont le pilote est
117 défectueux, ainsi que pour certains fournisseurs de réseau comme les
118 pilotes vpn, ou les filtres anti-spam, anti-virus ou
122 <seealso><directive>Protocol</directive></seealso>
126 <name>AcceptPathInfo</name>
127 <description>Les ressources acceptent des informations sous forme d'un
128 nom de chemin en fin de requê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 <compatibility>Disponible dans Apache httpd version 2.0.30 et
136 supérieures</compatibility>
140 <p>Cette directive permet de définir si les requêtes contenant des
141 informations sous forme d'un nom de chemin suivant le nom d'un
142 fichier réel (ou un fichier qui n'existe pas dans un répertoire qui
143 existe) doivent être acceptées ou rejetées. Les scripts peuvent
144 accéder à cette information via la variable d'environnement
145 <code>PATH_INFO</code>.</p>
147 <p>Supposons par exemple que <code>/test/</code> pointe vers un
148 répertoire qui ne contient que le fichier <code>here.html</code>.
149 Les requêtes pour <code>/test/here.html/more</code> et
150 <code>/test/nothere.html/more</code> vont affecter la valeur
151 <code>/more</code> à la variable d'environnement
152 <code>PATH_INFO</code>.</p>
154 <p>L'argument de la directive <directive>AcceptPathInfo</directive>
155 possède trois valeurs possibles :</p>
157 <dt><code>Off</code></dt><dd>Une requête ne sera acceptée que si
158 elle correspond à un chemin qui existe. Par conséquent, une requête
159 contenant une information de chemin après le nom de fichier réel
160 comme <code>/test/here.html/more</code> dans l'exemple ci-dessus
161 renverra une erreur "404 NOT FOUND".</dd>
163 <dt><code>On</code></dt><dd>Une requête sera acceptée si la partie
164 principale du chemin correspond à un fichier existant. Dans
165 l'exemple ci-dessus <code>/test/here.html/more</code>, la requête
166 sera acceptée si <code>/test/here.html</code> correspond à un nom de
169 <dt><code>Default</code></dt><dd>Le traitement des requêtes est
170 déterminé par le <a
171 href="../handler.html">gestionnaire</a> responsable de la requête.
172 Le gestionnaire de base pour les fichiers normaux rejette par défaut
173 les requêtes avec <code>PATH_INFO</code>. Les gestionnaires qui
174 servent des scripts, comme<a
175 href="mod_cgi.html">cgi-script</a> et <a
176 href="mod_isapi.html">isapi-handler</a>, acceptent en général par
177 défaut les requêtes avec <code>PATH_INFO</code>.</dd>
180 <p>Le but premier de la directive <code>AcceptPathInfo</code> est de
181 vous permettre de remplacer le choix du gestionnaire d'accepter ou
182 de rejeter <code>PATH_INFO</code>. Ce remplacement est nécessaire
183 par exemple, lorsque vous utilisez un <a
184 href="../filter.html">filtre</a>, comme <a
185 href="mod_include.html">INCLUDES</a>, pour générer un contenu basé
186 sur <code>PATH_INFO</code>. Le gestionnaire de base va en général
187 rejeter la requête, et vous pouvez utiliser la configuration
188 suivante pour utiliser un tel script :</p>
191 <Files "mes-chemins.shtml"><br />
193 Options +Includes<br />
194 SetOutputFilter INCLUDES<br />
195 AcceptPathInfo On<br />
204 <name>AccessFileName</name>
205 <description>Nom du fichier de configuration distribué</description>
206 <syntax>AccessFileName <var>nom-du-fichier</var>
207 [<var>nom-du-fichier</var>] ...</syntax>
208 <default>AccessFileName .htaccess</default>
209 <contextlist><context>server config</context><context>virtual
214 <p>Au cours du traitement d'une requête, le serveur recherche le
215 premier fichier de configuration existant à partir de la liste
216 de noms dans chaque répertoire composant le chemin du document, à
217 partir du moment où les fichiers de configuration distribués sont <a
218 href="#allowoverride">activés pour ce répertoire</a>. Par exemple
225 <p>avant de renvoyer le document
226 <code>/usr/local/web/index.html</code>, le serveur va rechercher les
227 fichiers <code>/.acl</code>, <code>/usr/.acl</code>,
228 <code>/usr/local/.acl</code> et <code>/usr/local/web/.acl</code>
229 pour y lire d'éventuelles directives, à moins quelles n'aient été
230 désactivées avec</p>
233 <Directory /><br />
235 AllowOverride None<br />
240 <seealso><directive module="core">AllowOverride</directive></seealso>
241 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
242 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
246 <name>AddDefaultCharset</name>
247 <description>Paramètre jeu de caractères par défaut à ajouter quand le
248 type de contenu d'une réponse est <code>text/plain</code> ou
249 <code>text/html</code></description>
250 <syntax>AddDefaultCharset On|Off|<var>jeu de caractères</var></syntax>
251 <default>AddDefaultCharset Off</default>
252 <contextlist><context>server config</context>
253 <context>virtual host</context><context>directory</context>
254 <context>.htaccess</context></contextlist>
255 <override>FileInfo</override>
258 <p>Cette directive spécifie une valeur par défaut pour le paramètre
259 jeu de caractères du type de média (le nom d'un codage de
260 caractères) à ajouter à une réponse, si et seulement si le type de
261 contenu de la réponse est soit <code>text/plain</code>, soit
262 <code>text/html</code>. Ceci va remplacer
263 tout jeu de caractères spécifié dans le corps de la réponse via un
264 élément <code>META</code>, bien que cet effet dépende en fait
265 souvent de la configuration du client de l'utilisateur. La
266 définition de <code>AddDefaultCharset Off</code> désactive cette
267 fonctionnalité. <code>AddDefaultCharset On</code> ajoute un jeu de
268 caractères par défaut de <code>iso-8859-1</code>. Toute autre valeur
269 peut être définie via le paramètre <var>jeu de caractères</var>, qui
270 doit appartenir à la liste des <a
271 href="http://www.iana.org/assignments/character-sets">valeurs de
272 jeux de caractères enregistrés par l'IANA</a> à utiliser dans les
273 types de média Internet (types MIME).
277 AddDefaultCharset utf-8
280 <p>La directive <directive>AddDefaultCharset</directive> ne doit
281 être utilisée que lorsque toutes les ressources textes auxquelles
282 elle s'applique possèdent le jeu de caractère spécifié, et qu'il est
283 trop contraignant de définir leur jeu de caractères
284 individuellement. Un exemple de ce type est l'ajout du paramètre jeu
285 de caractères aux ressources comportant un contenu généré, comme les
286 scripts CGI hérités qui peuvent être vulnérables à des attaques de
287 type cross-site scripting à cause des données utilisateurs incluses
288 dans leur sortie. Notez cependant qu'une meilleur solution consiste
289 à corriger (ou supprimer) ces scripts, car la définition d'un jeu de
290 caractères par défaut ne protège pas les utilisateurs qui ont activé
291 la fonctionnalité "Détection automatique de l'encodage des
292 caractères" dans leur navigateur.</p>
294 <seealso><directive module="mod_mime">AddCharset</directive></seealso>
298 <name>AllowEncodedSlashes</name>
299 <description>Détermine si les séparateurs de chemin encodés sont
300 autorisés à transiter dans les URLs tels quels</description>
301 <syntax>AllowEncodedSlashes On|Off|NoDecode</syntax>
302 <default>AllowEncodedSlashes Off</default>
303 <contextlist><context>server config</context><context>virtual
306 <compatibility>Disponible dans Apache httpd version 2.0.46 et
307 supérieures. L'option NoDecode est disponible depuis la version
308 2.3.12.</compatibility>
311 <p>La directive <directive>AllowEncodedSlashes</directive> permet
312 l'utilisation des URLs contenant des séparateurs de chemin
313 encodés dans la partie chemin
314 (<code>%2F</code> pour <code>/</code> et même <code>%5C</code> pour
315 <code>\</code> sur les systèmes concernés).</p>
317 <p>Avec la valeur par défaut, <code>Off</code>, de telles URLs sont
318 refusées et provoquent le renvoi d'une erreur 404 (Not found).</p>
320 <p>Avec la valeur <code>On</code>, ces URLs sont acceptées, et les
321 slashes encodés sont décodés comme tout autre caractère codé.</p>
323 <p>Avec la valeur <code>NoDecode</code>, ces URLs sont acceptées,
324 mais les slashes codés ne sont pas décodés et laissés dans leur état
327 <p>Définir <directive>AllowEncodedSlashes</directive> à
328 <code>On</code> est surtout utile en association avec
329 <code>PATH_INFO</code>.</p>
331 <note><title>Note</title>
332 <p>Si le codage des slashes dans la partie chemin est nécessaire,
333 l'utilisation de l'option <code>NoDecode</code> est fortement
334 recommandée par mesure de sécurité. Permettre le décodage des
335 slashes pourrait éventuellement induire l'autorisation de chemins
339 <seealso><directive module="core">AcceptPathInfo</directive></seealso>
343 <name>AllowOverride</name>
344 <description>Types de directives autorisées dans les fichiers
345 <code>.htaccess</code></description>
346 <syntax>AllowOverride All|None|<var>type directive</var>
347 [<var>type directive</var>] ...</syntax>
348 <default>AllowOverride None à partir de la version 2.3.9, AllowOverride
349 All pour les versions antérieures</default>
350 <contextlist><context>directory</context></contextlist>
353 <p>Lorsque le serveur trouve un fichier <code>.htaccess</code> (dont
354 le nom est défini par la directive <directive
355 module="core">AccessFileName</directive>), il doit savoir lesquelles
356 des directives placées dans ce fichier sont autorisées à modifier la
357 configuration préexistante.</p>
359 <note><title>Valable seulement dans les sections
360 <Directory></title>
361 La directive <directive>AllowOverride</directive> ne peut être
362 utilisée que dans les sections <directive type="section"
363 module="core">Directory</directive> définies sans expressions
364 rationnelles, et non dans les sections <directive
365 type="section" module="core">Location</directive>, <directive
366 module="core" type="section">DirectoryMatch</directive> ou
367 <directive type="section" module="core">Files</directive>.
370 <p>Lorsque cette directive et la directive <directive
371 module="core">AllowOverrideList</directive> sont définies à <code>None</code>, les
372 fichiers <a href="#accessfilename">.htaccess</a> sont totalement
373 ignorés. Dans ce cas, le serveur n'essaiera même pas de lire les
374 fichiers <code>.htaccess</code> du système de fichiers.</p>
376 <p>Lorsque cette directive est définie à <code>All</code>, toute
377 directive valable dans le <a
378 href="directive-dict.html#Context">Contexte</a> .htaccess sera
379 autorisée dans les fichiers <code>.htaccess</code>.</p>
381 <p>L'argument <var>type directive</var> peut contenir les
382 groupements de directives suivants :</p>
389 Permet l'utilisation des directives d'autorisation (<directive
390 module="mod_authn_dbm">AuthDBMGroupFile</directive>,
391 <directive module="mod_authn_dbm">AuthDBMUserFile</directive>,
392 <directive module="mod_authz_groupfile">AuthGroupFile</directive>,
393 <directive module="mod_authn_core">AuthName</directive>,
394 <directive module="mod_authn_core">AuthType</directive>, <directive
395 module="mod_authn_file">AuthUserFile</directive>, <directive
396 module="mod_authz_core">Require</directive>, <em>etc...</em>).</dd>
401 Permet l'utilisation des directives qui contrôlent les types de
402 documents (directives <directive
403 module="core">ErrorDocument</directive>, <directive
404 module="core">ForceType</directive>, <directive
405 module="mod_negotiation">LanguagePriority</directive>,
406 <directive module="core">SetHandler</directive>, <directive
407 module="core">SetInputFilter</directive>, <directive
408 module="core">SetOutputFilter</directive>, et directives du
409 module <module>mod_mime</module> Add* et Remove*), des metadonnées
410 des documents (<directive
411 module="mod_headers">Header</directive>, <directive
412 module="mod_headers">RequestHeader</directive>, <directive
413 module="mod_setenvif">SetEnvIf</directive>, <directive
414 module="mod_setenvif">SetEnvIfNoCase</directive>, <directive
415 module="mod_setenvif">BrowserMatch</directive>, <directive
416 module="mod_usertrack">CookieExpires</directive>, <directive
417 module="mod_usertrack">CookieDomain</directive>, <directive
418 module="mod_usertrack">CookieStyle</directive>, <directive
419 module="mod_usertrack">CookieTracking</directive>, <directive
420 module="mod_usertrack">CookieName</directive>), des directives du
421 module <module>mod_rewrite</module> <directive
422 module="mod_rewrite">RewriteEngine</directive>, <directive
423 module="mod_rewrite">RewriteOptions</directive>, <directive
424 module="mod_rewrite">RewriteBase</directive>, <directive
425 module="mod_rewrite">RewriteCond</directive>, <directive
426 module="mod_rewrite">RewriteRule</directive>) et de la directive
427 <directive module="mod_actions">Action</directive> du module
428 <module>mod_actions</module>.
434 Permet l'utilisation des directives qui contrôlent l'indexation
435 des répertoires (<directive
436 module="mod_autoindex">AddDescription</directive>,
437 <directive module="mod_autoindex">AddIcon</directive>, <directive
438 module="mod_autoindex">AddIconByEncoding</directive>,
439 <directive module="mod_autoindex">AddIconByType</directive>,
440 <directive module="mod_autoindex">DefaultIcon</directive>, <directive
441 module="mod_dir">DirectoryIndex</directive>, <directive
442 module="mod_autoindex">FancyIndexing</directive>, <directive
443 module="mod_autoindex">HeaderName</directive>, <directive
444 module="mod_autoindex">IndexIgnore</directive>, <directive
445 module="mod_autoindex">IndexOptions</directive>, <directive
446 module="mod_autoindex">ReadmeName</directive>,
447 <em>etc...</em>).</dd>
452 Permet l'utilisation des directives contrôlant l'accès au serveur
454 module="mod_authz_host">Allow</directive>, <directive
455 module="mod_authz_host">Deny</directive> et <directive
456 module="mod_authz_host">Order</directive>).</dd>
458 <dt>Nonfatal=[Override|Unknown|All]</dt>
461 Permet d'utiliser l'option AllowOverride pour rendre les erreurs
462 de syntaxe non fatales dans les fichiers .htaccess : au lieu de
463 causer une Internal Server Error, les directives non autorisées ou
464 non reconnues seront ignorées et un avertissement enregistré dans
467 <li><strong>Nonfatal=Override</strong> rend les directives
468 interdite par AllowOverride non fatales.</li>
469 <li><strong>Nonfatal=Unknown</strong> rend les directives
470 inconnues non fatales. Sont concernées les erreurs de frappe
471 et les directives implémentées par un module non chargé.</li>
472 <li><strong>Nonfatal=All</strong> rend toutes les directives
473 précédentes non fatales.</li>
475 <p>Notez qu'une erreur de syntaxe dans une directive valide
476 causera toujours une internal server error.</p>
477 <note type="warning"><title>Sécurité</title>
478 Les erreurs non fatales peuvent être à l'origine de problèmes
479 de sécurité pour les utilisateurs de fichiers .htaccess. Par
480 exemple, si AllowOverride interdit AuthConfig, toute
481 configuration utilisateur destinée à restreindre l'accès à un
482 site ne sera pas prise en compte.
486 <dt>Options[=<var>Option</var>,...]</dt>
489 Permet l'utilisation des directives contrôlant les fonctionnalités
490 spécifiques d'un répertoire (<directive
491 module="core">Options</directive> et <directive
492 module="mod_include">XBitHack</directive>). "Options" doit être
493 suivi d'un signe "égal", puis d'une liste d'options séparées par des
494 virgules (pas d'espaces) ; ces options doivent être définies à
495 l'aide de la commande <directive
496 module="core">Options</directive>.
498 <note><title>Désactivation implicite des options</title>
499 <p>Bien que la liste des options disponibles dans les fichiers
500 .htaccess puisse être limitée par cette directive, tant qu'un
501 directive <directive module="core">Options</directive> est
502 autorisée, toute autre option héritée peut être désactivée en
503 utilisant la syntaxe non-relative. En d'autres termes, ce
504 mécanisme ne peut pas forcer une option spécifique à rester
505 <em>activée</em> tout en permettant à toute autre option d'être
515 AllowOverride AuthConfig Indexes
518 <p>Dans l'exemple ci-dessus, toutes les directives qui ne font
519 partie ni du groupe <code>AuthConfig</code>, ni du groupe
520 <code>Indexes</code>, provoquent une erreur "internal
523 <note><p>Pour des raisons de sécurité et de performance, ne
524 définissez pas <code>AllowOverride</code> à autre chose que
525 <code>None</code> dans votre bloc <code><Directory /></code>.
526 Recherchez plutôt (ou créez) le bloc <code><Directory></code>
527 qui se réfère au répertoire où vous allez précisément placer un
528 fichier <code>.htaccess</code>.</p>
531 <seealso><directive module="core">AccessFileName</directive></seealso>
532 <seealso><directive module="core">AllowOverrideList</directive></seealso>
533 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
534 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
538 <name>AllowOverrideList</name>
539 <description>Directives autorisées dans les fichiers <code>.htaccess</code></description>
540 <syntax>AllowOverrideList None|<var>directive</var>
541 [<var>directive-type</var>] ...</syntax>
542 <default>AllowOverrideList None</default>
543 <contextlist><context>directory</context></contextlist>
546 <p>Lorsque le serveur trouve un fichier <code>.htaccess</code>
547 (comme spécifié par la directive <directive
548 module="core">AccessFileName</directive>), il doit savoir lesquelles
549 des directives déclarées dans ce fichier peuvent remplacer des
550 directives des fichiers de configuration du serveur.</p>
552 <note><title>Seulement disponible dans les sections <Directory></title>
553 La directive <directive>AllowOverrideList</directive> n'est
554 disponible que dans les sections <directive type="section"
555 module="core">Directory</directive> spécifiées sans expressions
559 <p>Lorsque cette directive et la directive <directive
560 module="core">AllowOverride</directive> sont définies à
561 <code>None</code>, les fichiers <a
562 href="#accessfilename">.htaccess</a> sont totalement ignorés. Dans
563 ce cas, le serveur ne cherchera même pas à lire des fichiers
564 <code>.htaccess</code> dans le système de fichiers.</p>
569 AllowOverride None<br />
570 AllowOverrideList Redirect RedirectMatch
573 <p>Dans l'exemple ci-dessus, seules les directives
574 <code>Redirect</code> et <code>RedirectMatch</code> sont autorisées.
575 Toutes les autres provoqueront une erreur interne du serveur.</p>
580 AllowOverride AuthConfig<br />
581 AllowOverrideList CookieTracking CookieName
584 <p>Dans l'exemple ci-dessus, la directive <directive
585 module="core">AllowOverride</directive> autorise les directives du
586 groupement <code>AuthConfig</code>, et
587 <directive>AllowOverrideList</directive> n'autorise que deux
588 directives du groupement <code>FileInfo</code>. Toutes les autres
589 provoqueront une erreur interne du serveur.</p>
592 <seealso><directive module="core">AccessFileName</directive></seealso>
593 <seealso><directive module="core">AllowOverride</directive></seealso>
594 <seealso><a href="../configuring.html">Fichiers de configuration</a></seealso>
595 <seealso><a href="../howto/htaccess.html">Fichiers .htaccess</a></seealso>
599 <name>CGIMapExtension</name>
600 <description>Technique permettant de localiser l'interpréteur des
601 scripts CGI</description>
602 <syntax>CGIMapExtension <var>chemin CGI</var> <var>.extension</var></syntax>
603 <contextlist><context>directory</context><context>.htaccess</context>
605 <override>FileInfo</override>
606 <compatibility>NetWare uniquement</compatibility>
609 <p>Cette directive permet de contrôler la manière dont Apache httpd trouve
610 l'interpréteur servant à exécuter les scripts CGI. Par exemple, avec
611 la définition <code>CGIMapExtension sys:\foo.nlm .foo</code>, tous
612 les fichiers scripts CGI possédant une extension <code>.foo</code>
613 seront passés à l'interpréteur FOO.</p>
618 <name>ContentDigest</name>
619 <description>Active la génération d'un en-tête <code>Content-MD5</code>
620 dans la réponse HTTP</description>
621 <syntax>ContentDigest On|Off</syntax>
622 <default>ContentDigest Off</default>
623 <contextlist><context>server config</context><context>virtual
625 <context>directory</context><context>.htaccess</context>
627 <override>Options</override>
628 <status>Expérimental</status>
631 <p>Cette directive active la génération d'un en-tête
632 <code>Content-MD5</code> selon les définitions des RFC 1864 et
635 <p>MD5 est un algorithme permettant de générer un condensé (parfois
636 appelé "empreinte") à partir de données d'une taille aléatoire ; le
637 degré de précision est tel que la moindre altération des données
638 d'origine entraîne une altération de l'empreinte.</p>
640 <p>L'en-tête <code>Content-MD5</code> permet de vérifier
641 l'intégrité de la réponse HTTP dans son ensemble. Un serveur mandataire
642 ou un client peut utiliser cet en-tête pour rechercher une
643 éventuelle modification accidentelle de la réponse au cours de sa
644 transmission. Exemple d'en-tête :</p>
647 Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
650 <p>Notez que des problèmes de performances peuvent affecter votre
651 serveur, car l'empreinte est générée pour chaque requête (il n'y a
652 pas de mise en cache).</p>
654 <p>L'en-tête <code>Content-MD5</code> n'est envoyé qu'avec les
655 documents servis par le module <module>core</module>, à l'exclusion
656 de tout autre module. Ainsi, les documents SSI, les sorties de
657 scripts CGI, et les réponses à des requêtes partielles (byte range)
658 ne comportent pas cet en-tête.</p>
663 <name>DefaultRuntimeDir</name>
664 <description>Répertoire de base des fichiers créés au cours de l'exécution du serveur</description>
665 <syntax>DefaultRuntimeDir <var>chemin-répertoire</var></syntax>
666 <default>DefaultRuntimeDir DEFAULT_REL_RUNTIMEDIR (logs/)</default>
667 <contextlist><context>server config</context></contextlist>
670 <p>La directive <directive>DefaultRuntimeDir</directive> permet de
671 définir le répertoire dans lequel le serveur va créer les différents
672 fichiers relatifs à son exécution (mémoire partagée, verrous,
673 etc...). Si le chemin spécifié est relatif, le chemin absolu sera
674 généré relativement à la valeur de la directive
675 <directive>ServerRoot</directive>.</p>
677 <example><title>Exemple</title>
678 DefaultRuntimeDir scratch/
681 <p>La valeur par défaut de la directive
682 <directive>DefaultRuntimeDir</directive> peut être modifiée en
683 changeant la valeur de la macro <code>DEFAULT_REL_RUNTIMEDIR</code>
684 définie à la compilation.</p>
686 <p>Note: si la valeur de <directive>ServerRoot</directive> n'a pas
687 été spécifiée avant d'utiliser cette directive, c'est la valeur par
688 défaut de <directive>ServerRoot</directive> qui sera utilisée pour
689 définir la base du répertoire.</p>
693 href="../misc/security_tips.html#serverroot">conseils à propos de
694 sésurité</a> pour plus d'informations en vue de définir correctement les
695 permissions sur la racine du serveur <directive>ServerRoot</directive></seealso>
699 <name>DefaultType</name>
700 <description>Les seuls effets de cette directive sont des émissions
701 d'avertissements si sa valeur est différente de <code>none</code>. Dans
702 les versions précédentes, DefaultType permettait de spécifier un type de
703 média à assigner par défaut au contenu d'une réponse pour lequel aucun
704 autre type de média n'avait été trouvé.
706 <syntax>DefaultType <var>type média|none</var></syntax>
707 <default>DefaultType none</default>
708 <contextlist><context>server config</context><context>virtual
710 <context>directory</context><context>.htaccess</context>
712 <override>FileInfo</override>
713 <compatibility>L'argument <code>none</code> est disponible dans les
714 versions d'Apache httpd 2.2.7 et supérieures. Tous les autres choix sont
715 DESACTIVÉS à partir des version 2.3.x.</compatibility>
718 <p>Cette directive a été désactivée. Pour la compatibilité
719 ascendante avec les anciens fichiers de configuration, elle peut
720 être spécifiée avec la valeur <code>none</code>, c'est à dire sans
721 type de médium par défaut. Par exemple :</p>
726 <p><code>DefaultType None</code> n'est disponible que dans les
727 versions d'Apache 2.2.7 et supérieures.</p>
729 <p>Utilisez le fichier de configuration mime.types et la directive
730 <directive module="mod_mime">AddType</directive> pour configurer
731 l'assignement d'un type de médium via les extensions de fichiers, ou
732 la directive <directive module="core">ForceType</directive> pour
733 attribuer un type de médium à des ressources spécifiques. Dans le
734 cas contraire, le serveur enverra sa réponse sans champ d'en-tête
735 Content-Type, et le destinataire devra déterminer lui-même le type
736 de médium.</p>
742 <description>Permet de définir une variable</description>
743 <syntax>Define <var>nom-paramètre</var> [<var>valeur-paramètre</var>]</syntax>
744 <contextlist><context>server config</context><context>virtual host</context>
745 <context>directory</context></contextlist>
748 <p>Avec un seul paramètre, l'effet de la directive
749 <directive>Define</directive> est identique à celui de l'argument
750 <code>-D</code> du programme <program>httpd</program>. Il permet de
751 modifier le comportement des sections <directive module="core"
752 type="section">IfDefine</directive> sans avoir à ajouter d'argument
753 <code>-D</code> au sein des scripts de démarrage.</p>
755 <p>De plus, le second paramètre permet d'affecter une valeur à la
756 variable définie par le premier. Cette variable peut être référencée
757 dans le fichier de configuration via la syntaxe <code>${VAR}</code>.
758 La portée de la variable est toujours globale, et n'est jamais
759 limitée à la section de configuration courante.</p>
762 <IfDefine TEST><br/>
763 Define servername test.example.com<br/>
764 </IfDefine><br/>
765 <IfDefine !TEST><br/>
766 Define servername www.example.com<br/>
767 Define SSL<br/>
768 </IfDefine><br/>
771 <p>Le caractère ":" est interdit dans les noms de variables afin
772 d'éviter les conflits avec la syntaxe de la directive <directive
773 module="mod_rewrite">RewriteMap</directive>.</p>
777 <directivesynopsis type="section">
778 <name>Directory</name>
779 <description>Regroupe un ensemble de directives qui ne s'appliquent
780 qu'au répertoire concerné du système de fichiers, à ses
781 sous-répertoires, et à leur contenu.</description>
782 <syntax><Directory <var>chemin répertoire</var>>
783 ... </Directory></syntax>
784 <contextlist><context>server config</context><context>virtual
789 <p>Les balises <directive type="section">Directory</directive> et
790 <code></Directory></code> permettent de regrouper un ensemble
791 de directives qui ne s'appliquent qu'au répertoire précisé,
792 à ses sous-répertoires, et aux fichiers situés dans ces
793 sous-répertoires. Toute directive
794 autorisée dans un contexte de répertoire peut être utilisée.
795 <var>chemin répertoire</var> est soit le chemin absolu d'un
796 répertoire, soit une chaîne de caractères avec caractères génériques
797 utilisant la comparaison Unix de style shell. Dans une chaîne de
798 caractères avec caractères génériques, <code>?</code> correspond à
799 un caractère quelconque, et <code>*</code> à toute chaîne de
800 caractères. Les intervalles de caractères <code>[]</code> sont aussi
801 autorisés. Aucun caractère générique ne peut remplacer le caractère
802 `/', si bien que l'expression <code><Directory
803 /*/public_html></code> ne conviendra pas pour le chemin
804 * <code>/home/user/public_html</code>, alors que <code><Directory
805 /home/*/public_html></code> conviendra. Exemple :</p>
808 <Directory /usr/local/httpd/htdocs><br />
810 Options Indexes FollowSymLinks<br />
816 <p>Soyez prudent avec l'argument <var>chemin répertoire</var> : il
817 doit correspondre exactement au chemin du système de fichier
818 qu'Apache httpd utilise pour accéder aux fichiers. Les directives
819 comprises dans une section <code><Directory></code> ne
820 s'appliqueront pas aux fichiers du même répertoire auxquels on
821 aura accédé via un chemin différent, per exemple via un lien
825 <p> Les <glossary ref="regex">Expressions rationnelles</glossary>
826 peuvent aussi être utilisées en ajoutant le caractère
827 <code>~</code>. Par exemple :</p>
830 <Directory ~ "^/www/.*/[0-9]{3}">
833 <p>pourra correspondre à tout répertoire situé dans /www/ et dont le
834 nom se compose de trois chiffres.</p>
836 <p>Si plusieurs sections <directive
837 type="section">Directory</directive> (sans expression rationnelle)
838 correspondent au répertoire (ou à un de ses parents) qui contient le
839 document, les directives de la section <directive
840 type="section">Directory</directive> dont le chemin est le plus
841 court sont appliquées en premier, en s'intercalant avec les
842 directives des fichiers <a href="#accessfilename">.htaccess</a>. Par
846 <Directory /><br />
848 AllowOverride None<br />
850 </Directory><br />
852 <Directory /home><br />
854 AllowOverride FileInfo<br />
859 <p>l'accès au document <code>/home/web/dir/doc.html</code> emprunte
860 le chemin suivant :</p>
863 <li>Aplication de la directive <code>AllowOverride None</code>
864 (qui désactive les fichiers <code>.htaccess</code>).</li>
866 <li>Application de la directive <code>AllowOverride
867 FileInfo</code> (pour le répertoire <code>/home</code>).</li>
869 <li>Application de toute directive <code>FileInfo</code> qui se
870 trouverait dans d'éventuels fichiers <code>/home/.htaccess</code>,
871 <code>/home/web/.htaccess</code> ou
872 <code>/home/web/dir/.htaccess</code>, dans cet ordre.</li>
875 <p>Les directives associées aux répertoires sous forme d'expressions
876 rationnelles ne sont prises en compte qu'une fois toutes les
877 directives des sections sans expressions rationnelles appliquées.
878 Alors, tous les répertoires avec expressions rationnelles sont
879 testés selon l'ordre dans lequel ils apparaissent dans le fichier de
880 configuration. Par exemple, avec</p>
883 <Directory ~ abc$><br />
885 # ... directives here ...<br />
890 <p>la section avec expression rationnelle ne sera prise en compte
891 qu'après les sections <directive
892 type="section">Directory</directive> sans expression rationnelle
893 et les fichiers <code>.htaccess</code>. Alors, l'expression
894 rationnelle conviendra pour <code>/home/abc/public_html/abc</code>
895 et la section <directive type="section">Directory</directive>
896 correspondante s'appliquera.</p>
898 <p><strong>Notez que la politique d'accès par défaut
899 dans les sections <code><Directory /></code> consiste à
900 autoriser tout accès sans restriction. Ceci signifie qu'Apache httpd va servir tout fichier
901 correspondant à une URL. Il est recommandé de modifier cette
902 situation à l'aide d'un bloc du style</strong></p>
905 <Directory /><br />
907 Require all denied<br />
912 <p><strong>puis d'affiner la configuration pour les répertoires que vous
913 voulez rendre accessibles. Voir la page <a
914 href="../misc/security_tips.html">Conseils à propos de sécurité</a>
915 pour plus de détails.</strong></p>
917 <p>Les sections <directive type="section">Directory</directive> se situent
918 dans le fichier <code>httpd.conf</code>. Les directives <directive
919 type="section">Directory</directive> ne peuvent pas être imbriquées
920 et ne sont pas autorisées dans les sections <directive module="core"
921 type="section">Limit</directive> ou <directive module="core"
922 type="section">LimitExcept</directive>.</p>
924 <seealso><a href="../sections.html">Comment fonctionnent les sections
925 <Directory>, <Location> et <Files></a> pour des
926 explications à propos de la manière dont ces différentes sections se
927 combinent entre elles à la réception d'une requête</seealso>
930 <directivesynopsis type="section">
931 <name>DirectoryMatch</name>
932 <description>Regroupe des directives qui s'appliquent au contenu de répertoires
933 du système de fichiers correspondant à une expression rationnelle</description>
934 <syntax><DirectoryMatch <var>regex</var>>
935 ... </DirectoryMatch></syntax>
936 <contextlist><context>server config
937 </context><context>virtual host</context>
941 <p>Les balises <directive type="section">DirectoryMatch</directive>
942 et <code></DirectoryMatch></code> permettent de regrouper un
943 ensemble de directives qui ne s'appliqueront qu'au répertoire
944 précisé (et aux fichiers qu'il contient), comme pour la section <directive
945 module="core" type="section">Directory</directive>. Cependant, le
946 répertoire est précisé sous la forme d'une <glossary
947 ref="regex">expression rationnelle</glossary>. Par exemple :</p>
950 <DirectoryMatch "^/www/(.+/)?[0-9]{3}">
953 <p>conviendrait pour les sous-répertoires de <code>/www/</code> dont
954 le nom se compose de trois chiffres.</p>
956 <note><title>Compatibilité</title>
957 Avant la version 2.3.9, cette directive s'appliquait aussi aux
958 sous-répertoires (comme la directive <directive module="core"
959 type="section">Directory</directive>), et ne tenait pas compte du
960 symbole de fin de ligne ($). Depuis la version 2.3.9, seuls les
961 répertoires qui correspondent à l'expression sont affectés par les
962 directives contenues dans la section.
965 <note><title>slash de fin</title>
966 Cette directive s'applique aux requêtes pour des répertoires avec
967 ou sans slash de fin ; les expressions contenant un symbole de fin
968 de ligne ($) doivent donc faire l'objet d'une attention
972 <seealso><directive type="section" module="core">Directory</directive>
973 pour une description de la manière dont les expressions rationnelles
974 sont traitées en présence d'autres sections <directive
975 type="section">Directory</directive> sans expressions rationnelles</seealso>
977 href="../sections.html">Comment fonctionnent les sections
978 <Directory>, <Location> et <Files></a> pour une
979 explication à propos de la manière dont ces différentes sections se
980 combinent entre elles à la réception d'une requête</seealso>
984 <name>DocumentRoot</name>
985 <description>Racine principale de l'arborescence des documents visible
986 depuis Internet</description>
987 <syntax>DocumentRoot <var>chemin répertoire</var></syntax>
988 <default>DocumentRoot /usr/local/apache/htdocs</default>
989 <contextlist><context>server config</context><context>virtual
994 <p>Cette directive permet de définir le répertoire à partir duquel
995 <program>httpd</program> va servir les fichiers. S'il ne correspond
996 pas à un <directive module="mod_alias">Alias</directive>, le chemin
997 de l'URL sera ajouté par le serveur à la racine des documents afin
998 de construire le chemin du document recherché. Exemple :</p>
1001 DocumentRoot /usr/web
1004 <p>un accès à <code>http://my.example.com/index.html</code> se
1005 réfère alors à <code>/usr/web/index.html</code>. Si <var>chemin
1006 répertoire</var> n'est pas un chemin absolu, il est considéré comme
1007 relatif au chemin défini par la directive <directive
1008 module="core">ServerRoot</directive>.</p>
1010 <p>Le répertoire défini par la directive
1011 <directive>DocumentRoot</directive> ne doit pas comporter de slash
1014 <seealso><a href="../urlmapping.html#documentroot">Mise en
1015 correspondance des URLs avec le système de fichiers</a></seealso>
1016 </directivesynopsis>
1018 <directivesynopsis type="section">
1020 <description>Contient des directives qui ne s'appliquent que si la
1021 condition correspondant à la section <directive type="section"
1022 module="core">If</directive> ou <directive type="section"
1023 module="core">ElseIf</directive> précédente n'est pas satisfaite par la
1024 requête à l'exécution</description>
1025 <syntax><Else> ... </Else></syntax>
1026 <contextlist><context>server config</context><context>virtual host</context>
1027 <context>directory</context><context>.htaccess</context>
1029 <override>All</override>
1032 <p>La section <directive type="section">Else</directive> applique
1033 les directives qu'elle contient si et seulement si les conditions
1034 correspondant à la section <directive type="section">If</directive>
1035 ou <directive type="section">ElseIf</directive> immédiatement
1036 supérieure et dans la même portée n'ont pas été satisfaites. Par
1040 <If "-z req('Host')"><br/>
1048 <p>La condition de la section <directive
1049 type="section">If</directive> serait satisfaite pour les requêtes
1050 HTTP/1.0 sans en-tête <var>Host:</var>, alors que celle de la section
1051 <directive type="section">Else</directive> le serait pour les
1052 requêtes comportant un en-tête <var>Host:</var>.</p>
1055 <seealso><directive type="section" module="core">If</directive></seealso>
1056 <seealso><directive type="section" module="core">ElseIf</directive></seealso>
1057 <seealso><a href="../sections.html">Fonctionnement des sections <Directory>, <Location>,
1058 <Files></a> pour une explication de la manière dont ces
1059 différentes section se combinent entre elles lorsqu'une requête est
1060 reçue. Les directives <directive type="section">If</directive>,
1061 <directive type="section">ElseIf</directive>, et <directive
1062 type="section">Else</directive> s'appliquent en dernier.</seealso>
1063 </directivesynopsis>
1065 <directivesynopsis type="section">
1067 <description>Contient des directives qui ne s'appliquent que si la
1068 condition correspondante est satisfaite par une requête à l'exécution,
1069 alors que la condition correspondant à la section <directive
1070 type="section" module="core">If</directive> ou <directive
1071 type="section">ElseIf</directive> précédente ne l'était pas.</description>
1072 <syntax><ElseIf <var>expression</var>> ... </ElseIf></syntax>
1073 <contextlist><context>server config</context><context>virtual host</context>
1074 <context>directory</context><context>.htaccess</context>
1076 <override>All</override>
1079 <p>La section <directive type="section">ElseIf</directive> applique
1080 les directives qu'elle contient si et seulement si d'une part la
1081 condition correspondante est satisfaite, et d'autre part la condition
1082 correspondant à la section <directive type="section">If</directive>
1083 ou <directive type="section">ElseIf</directive> de la même portée ne
1084 l'est pas. Par exemple, dans :</p>
1087 <If "-R '10.1.0.0/16'"><br/>
1090 <ElseIf "-R '10.0.0.0/8'"><br/>
1092 </ElseIf><br/>
1098 <p>La condition correspondant à la section <directive
1099 type="section">ElseIf</directive> est satisfaite si l'adresse
1100 distante de la requête appartient au sous-réseau 10.0.0.0/8, mais
1101 pas si elle appartient au sous-réseau 10.1.0.0/16.</p>
1104 <seealso><a href="../expr.html">Les expressions dans le serveur HTTP
1105 Apache</a>, pour une référence complète et d'autres exemples.</seealso>
1106 <seealso><directive type="section" module="core">If</directive></seealso>
1107 <seealso><directive type="section" module="core">Else</directive></seealso>
1108 <seealso><a href="../sections.html">Fonctionnement des sections <Directory>, <Location>,
1109 <Files></a> pour une explication de la manière dont ces
1110 différentes section se combinent entre elles lorsqu'une requête est
1111 reçue. Les directives <directive type="section">If</directive>,
1112 <directive type="section">ElseIf</directive>, et <directive
1113 type="section">Else</directive> s'appliquent en dernier.</seealso>
1114 </directivesynopsis>
1117 <name>EnableMMAP</name>
1118 <description>Utilise la projection en mémoire (Memory-Mapping) pour
1119 lire les fichiers pendant qu'ils sont servis</description>
1120 <syntax>EnableMMAP On|Off</syntax>
1121 <default>EnableMMAP On</default>
1122 <contextlist><context>server config</context><context>virtual
1124 <context>directory</context><context>.htaccess</context>
1126 <override>FileInfo</override>
1129 <p>Cette directive définit si <program>httpd</program> peut utiliser
1130 la projection en mémoire (Memory-Mapping) quand il doit lire le contenu
1131 d'un fichier pendant qu'il est servi. Par défaut, lorsque le
1132 traitement d'une requête requiert l'accès aux données contenues dans
1133 un fichier -- par exemple, pour servir un fichier interprété par le
1134 serveur à l'aide de <module>mod_include</module> -- Apache httpd projette
1135 le fichier en mémoire si le système d'exploitation le permet.</p>
1137 <p>Cette projection en mémoire induit parfois une amélioration des
1138 performances. Sur certains systèmes cependant, il est préférable de
1139 désactiver la projection en mémoire afin d'éviter certains problèmes
1140 opérationnels :</p>
1143 <li>Sur certains systèmes multi-processeurs, la projection en
1144 mémoire peut dégrader les performances du programme
1145 <program>httpd</program>.</li>
1146 <li>S'il fait l'objet d'une projection en mémoire par
1147 <program>httpd</program>, la suppression ou la troncature d'un
1148 fichier peut provoquer un crash de <program>httpd</program> avec une
1149 erreur de segmentation.</li>
1152 <p>Pour les configurations de serveur sujettes à ce genre de
1153 problème, il est préférable de désactiver la projection en mémoire
1154 des fichiers servis en spécifiant :</p>
1160 <p>Pour les montages NFS, cette fonctionnalité peut être
1161 explicitement désactivée pour les fichiers concernés en spécifiant
1165 <Directory "/chemin vers montage NFS">
1172 </directivesynopsis>
1175 <name>EnableSendfile</name>
1176 <description>Utilise le support sendfile du noyau pour servir les
1177 fichiers aux clients</description>
1178 <syntax>EnableSendfile On|Off</syntax>
1179 <default>EnableSendfile Off</default>
1180 <contextlist><context>server config</context><context>virtual
1182 <context>directory</context><context>.htaccess</context>
1184 <override>FileInfo</override>
1185 <compatibility>Disponible dans les versions 2.0.44 et
1186 supérieures. Par défaut à Off depuis la version 2.3.9.</compatibility>
1189 <p>Cette directive définit si le programme <program>httpd</program>
1190 peut utiliser le support sendfile du noyau pour transmettre le
1191 contenu des fichiers aux clients. Par défaut, lorsque le traitement
1192 d'une requête ne requiert pas l'accès aux données contenues dans un
1193 fichier -- par exemple, pour la transmission d'un fichier statique
1194 -- Apache httpd utilise sendfile pour transmettre le contenu du fichier
1195 sans même lire ce dernier, si le système d'exploitation le
1198 <p>Ce mécanisme sendfile évite la séparation des opérations de
1199 lecture et d'envoi, ainsi que les réservations de tampons. sur
1200 certains systèmes cependant, ou sous certains systèmes de fichiers,
1201 il est préférable de désactiver cette fonctionnalité afin d'éviter
1202 certains problèmes opérationnels :</p>
1205 <li>Certains systèmes peuvent présenter un support sendfile
1206 défectueux que le système de compilation n'a pas détecté, en
1207 particulier si les exécutables ont été compilés sur une autre
1208 machine, puis copiés sur la première avec un support sendfile
1209 défectueux.</li>
1210 <li>Sous Linux, l'utilisation de sendfile induit des bogues lors de
1211 la récupération des paquets de vérification TCP (TCP-checksum) avec
1212 certaines cartes réseau lorsqu'on utilise IPv6.</li>
1213 <li>Sous Linux sur Itanium, <code>sendfile</code> peut s'avérer incapable de
1214 traiter les fichiers de plus de 2 Go.</li>
1215 <li>Avec un montage réseau de <directive
1216 module="core">DocumentRoot</directive> (par exemple NFS, SMB, CIFS,
1218 noyau peut s'avérer incapable de servir un fichier de ce montage
1219 réseau en passant par son propre cache.</li>
1222 <p>Pour les configurations de serveur non sujettes à ce genre de
1223 problème, vous pouvez activer cette fonctionnalité en
1224 spécifiant :</p>
1230 <p>Pour les montages réseau, cette fonctionnalité peut être
1231 explicitement désactivée pour les fichiers concernés en spécifiant
1235 <Directory "/chemin vers montage réseau">
1241 <p>Veuillez noter que la configuration de la directive
1242 <directive>EnableSendfile</directive> dans un contexte de répertoire
1243 ou de fichier .htaccess n'est pas supportée par
1244 <module>mod_cache_disk</module>. Le module ne prend en compte la
1245 définition de <directive>EnableSendfile</directive> que dans un
1249 </directivesynopsis>
1253 <description>Interrompt la lecture de la configuration avec un message
1254 d'erreur personnalisé</description>
1255 <syntax>Error <var>message</var></syntax>
1256 <contextlist><context>server config</context><context>virtual host</context>
1257 <context>directory</context><context>.htaccess</context>
1259 <compatibility>à partir de la version 2.3.9</compatibility>
1262 <p>Si une erreur peut être détectée dans la configuration, souvent
1263 un module manquant, cette
1264 directive peut être utilisée pour générer un message d'erreur
1265 personnalisé, et interrompre la lecture de la configuration. </p>
1267 <example><title>Exemple</title>
1268 # vérification du chargement de mod_include<br />
1269 <IfModule !include_module><br />
1270 Error mod_foo nécessite mod_include. Chargez-le via LoadModule.<br />
1271 </IfModule><br />
1273 # vérification de la définition de SSL ou (exclusif) NOSSL<br />
1274 <IfDefine SSL><br />
1275 <IfDefine NOSSL><br />
1276 Error SSL et NOSSL sont définies. Vous devez définir soit l'une,
1278 </IfDefine><br />
1279 </IfDefine><br />
1280 <IfDefine !SSL><br />
1281 <IfDefine !NOSSL><br />
1282 Error Vous devez définir une et une seule des deux variables SSL
1284 </IfDefine><br />
1285 </IfDefine><br />
1289 </directivesynopsis>
1292 <name>ErrorDocument</name>
1293 <description>Document que le serveur renvoie au client en cas
1294 d'erreur</description>
1295 <syntax>ErrorDocument <var>code erreur</var> <var>document</var></syntax>
1296 <contextlist><context>server config</context><context>virtual
1298 <context>directory</context><context>.htaccess</context>
1300 <override>FileInfo</override>
1303 <p>Apache httpd peut traiter les problèmes et les erreurs de quatre
1304 manières,</p>
1307 <li>afficher un simple message d'erreur au contenu fixe</li>
1309 <li>afficher un message personnalisé</li>
1311 <li>rediriger vers un <var>chemin d'URL</var> local pour traiter
1312 le problème ou l'erreur</li>
1314 <li>rediriger vers une <var>URL</var> externe pour traiter
1315 le problème ou l'erreur</li>
1318 <p>La première option constitue le comportement par défaut; pour
1319 choisir une des trois autres options, il faut configurer Apache à
1320 l'aide de la directive <directive>ErrorDocument</directive>, suivie
1321 du code de la réponse HTTP et d'une URL ou d'un message. Apache
1322 httpd fournit parfois des informations supplémentaires à propos du
1323 problème ou de l'erreur.</p>
1325 <p>Les URLs peuvent commencer par un slash (/) pour les chemins web
1326 locaux (relatifs au répertoire défini par la directive <directive
1327 module="core">DocumentRoot</directive>), ou se présenter sous la
1328 forme d'une URL complète que le client pourra résoudre.
1329 Alternativement, un message à afficher par le navigateur pourra être
1330 fourni. Exemples :</p>
1333 ErrorDocument 500 http://foo.example.com/cgi-bin/tester<br />
1334 ErrorDocument 404 /cgi-bin/bad_urls.pl<br />
1335 ErrorDocument 401 /subscription_info.html<br />
1336 ErrorDocument 403 "Désolé, vous n'avez pas l'autorisation d'accès
1338 ErrorDocument 403 Interdit!
1341 <p>De plus, on peut spécifier la valeur spéciale <code>default</code>
1342 pour indiquer l'utilisation d'un simple message d'Apache httpd codé en
1343 dur. Bien que non nécessaire dans des circonstances normales, la
1344 spécification de la valeur <code>default</code> va permettre de
1345 rétablir l'utilisation du simple message d'Apache httpd codé en dur pour
1346 les configurations qui sans cela, hériteraient d'une directive
1347 <directive>ErrorDocument</directive> existante.</p>
1350 ErrorDocument 404 /cgi-bin/bad_urls.pl<br /><br />
1351 <Directory /web/docs><br />
1353 ErrorDocument 404 default<br />
1358 <p>Notez que lorsque vous spécifiez une directive
1359 <directive>ErrorDocument</directive> pointant vers une URL distante
1360 (c'est à dire tout ce qui commence par le préfixe http), le serveur
1362 envoyer une redirection au client afin de lui indiquer où trouver le
1363 document, même dans le cas où ce document se trouve sur le serveur
1364 local. Ceci a de nombreuses conséquences dont la plus importante
1365 réside dans le fait que le client ne recevra pas le code d'erreur
1366 original, mais au contraire un code de statut de redirection. Ceci
1367 peut en retour semer la confusion chez les robots web et divers
1368 clients qui tentent de déterminer la validité d'une URL en examinant
1369 le code de statut. De plus, si vous utilisez une URL distante avec
1370 <code>ErrorDocument 401</code>, le client ne saura pas qu'il doit
1371 demander un mot de passe à l'utilisateur car il ne recevra pas le
1372 code de statut 401. C'est pourquoi, <strong>si vous utilisez une
1373 directive <code>ErrorDocument 401</code>, elle devra faire référence
1374 à un document par le biais d'un chemin local.</strong></p>
1376 <p>Microsoft Internet Explorer (MSIE) ignore par défaut les messages
1377 d'erreur générés par le serveur lorsqu'ils sont trop courts et
1378 remplacent ses propres messages d'erreur "amicaux". Le seuil de
1379 taille varie en fonction du type d'erreur, mais en général, si la
1380 taille de votre message d'erreur est supérieure à 512 octets, il y a
1381 peu de chances pour que MSIE l'occulte, et il sera affiché par ce
1382 dernier. Vous trouverez d'avantage d'informations dans l'article de
1383 la base de connaissances Microsoft <a
1384 href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807"
1387 <p>Bien que la plupart des messages d'erreur internes originaux
1388 puissent être remplacés, ceux-ci sont cependant conservés dans
1389 certaines circonstances sans tenir compte de la définition de la
1390 directive <directive module="core">ErrorDocument</directive>. En
1391 particulier, en cas de détection d'une requête mal formée, le
1392 processus de traitement normal des requêtes est immédiatement
1393 interrompu, et un message d'erreur interne est renvoyé, ceci afin de
1394 se prémunir contre les problèmes de sécurité liés aux requêtes mal
1397 <p>Si vous utilisez mod_proxy, il est en général préférable
1398 d'activer <directive
1399 module="mod_proxy">ProxyErrorOverride</directive> afin d'être en
1400 mesure de produire des messages d'erreur personnalisés pour le
1401 compte de votre serveur d'origine. Si vous n'activez pas
1402 ProxyErrorOverride, Apache httpd ne générera pas de messages d'erreur
1403 personnalisés pour le contenu mandaté.</p>
1407 <seealso><a href="../custom-error.html">documentation sur la
1408 personnalisation des réponses</a></seealso>
1409 </directivesynopsis>
1412 <name>ErrorLog</name>
1413 <description>Définition du chemin du journal des erreurs</description>
1414 <syntax> ErrorLog <var>chemin fichier</var>|syslog[:<var>facility</var>]</syntax>
1415 <default>ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)</default>
1416 <contextlist><context>server config</context><context>virtual
1421 <p>La directive <directive>ErrorLog</directive> permet de définir le
1422 nom du fichier dans lequel le serveur va journaliser toutes les
1423 erreurs qu'il rencontre. Si le <var>chemin fichier</var> n'est pas
1424 absolu, il est considéré comme relatif au chemin défini par la
1425 directive <directive module="core">ServerRoot</directive>.</p>
1427 <example><title>Exemple</title>
1428 ErrorLog /var/log/httpd/error_log
1431 <p>Si le <var>chemin fichier</var> commence par une barre verticale
1432 "<code>(|)</code>", il est considéré comme une commande à lancer pour traiter la
1433 journalisation de l'erreur.</p>
1435 <example><title>Exemple</title>
1436 ErrorLog "|/usr/local/bin/erreurs_httpd"
1439 <p>Voir les notes à propos des <a href="../logs.html#piped">journaux
1440 redirigés</a> pour plus d'informations.</p>
1442 <p>L'utilisation de <code>syslog</code> à la place d'un nom de
1443 fichier active la journalisation via syslogd(8) si le système le
1444 supporte. Le dispositif syslog par défaut est <code>local7</code>,
1445 mais vous pouvez le modifier à l'aide de la syntaxe
1446 <code>syslog:<var>facility</var></code>, où <var>facility</var> peut
1447 être remplacé par un des noms habituellement documentés dans la page
1448 de man syslog(1). Le dispositif syslog <code>local7</code> est
1449 global, et si il est modifié dans un serveur virtuel, le dispositif
1450 final spécifié affecte l'ensemble du serveur</p>
1452 <example><title>Exemple</title>
1453 ErrorLog syslog:user
1456 <p>SECURITE : Voir le document <a
1457 href="../misc/security_tips.html#serverroot">conseils à propos de
1458 sécurité</a> pour des détails sur les raisons pour lesquelles votre
1459 sécurité peut être compromise si le répertoire contenant les
1460 fichiers journaux présente des droits en écriture pour tout autre
1461 utilisateur que celui sous lequel le serveur est démarré.</p>
1462 <note type="warning"><title>Note</title>
1463 <p>Lors de la spécification d'un chemin de fichier sur les
1464 plates-formes non-Unix, on doit veiller à n'utiliser que des
1465 slashes (/), même si la plate-forme autorise l'utilisation des
1466 anti-slashes (\). Et d'une manière générale, il est recommandé de
1467 n'utiliser que des slashes (/) dans les fichiers de
1471 <seealso><directive module="core">LogLevel</directive></seealso>
1472 <seealso><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></seealso>
1473 </directivesynopsis>
1476 <name>ErrorLogFormat</name>
1477 <description>Spécification du format des entrées du journal des erreurs</description>
1478 <syntax> ErrorLogFormat [connection|request] <var>format</var></syntax>
1479 <contextlist><context>server config</context><context>virtual host</context>
1481 <compatibility>Disponible depuis la version 2.3.9 d'Apache</compatibility>
1484 <p>La directive <directive>ErrorLogFormat</directive> permet de
1485 spécifier quelles informations supplémentaires vont être enregistrées
1486 dans le journal des erreurs en plus du message habituel.</p>
1488 <example><title>Exemple simple</title>
1489 ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
1492 <p>La spécification de <code>connection</code> ou
1493 <code>request</code> comme premier paramètre permet de définir des
1494 formats supplémentaires, ce qui a pour effet de journaliser des
1495 informations additionnelles lorsque le premier message est
1496 enregistré respectivement pour une connexion ou une requête
1497 spécifique. Ces informations additionnelles ne sont enregistrées
1498 qu'une seule fois par connexion/requête. Si le traitement d'une
1499 connexion ou d'une requête ne génère aucun message dans le journal,
1500 alors aucune information additionnelle n'est enregistrée.</p>
1502 <p>Il peut arriver que certains items de la chaîne de format ne
1503 produisent aucune sortie. Par exemple, l'en-tête Referer n'est
1504 présent que si le message du journal est associé à une requête et s'il
1505 est généré à un moment où l'en-tête Referer a déjà été lu par le
1506 client. Si aucune sortie n'est générée, le comportement par défaut
1507 consiste à supprimer tout ce qui se trouve entre l'espace précédent
1508 et le suivant. Ceci implique que la ligne de journalisation est
1509 divisée en champs ne contenant pas d'espace séparés par des espaces.
1510 Si un item de la chaîne de format ne génère aucune sortie,
1511 l'ensemble du champ est omis. Par exemple, si l'adresse distante
1512 <code>%a</code> du format <code>[%t] [%l] [%a] %M </code> n'est
1513 pas disponible, les crochets qui l'entourent ne seront eux-mêmes pas
1514 enregistrés. Il est possible d'échapper les espaces par un anti-slash
1515 afin qu'ils ne soient pas considérés comme séparateurs de champs.
1516 La combinaison '% ' (pourcentage espace) est un délimiteur de
1517 champ de taille nulle qui ne génère aucune sortie.</p>
1519 <p>Ce comportement peut être changé en ajoutant des modificateurs à
1520 l'item de la chaîne de format. Le modificateur <code>-</code>
1521 (moins) provoque l'enregistrement d'un signe moins si l'item
1522 considéré ne génère aucune sortie. Pour les formats à enregistrement
1523 unique par connexion/requête, il est aussi possible d'utiliser le
1524 modificateur <code>+</code> (plus). Si un item ne générant aucune
1525 sortie possède le modificateur plus, la ligne dans son ensemble est
1528 <p>Un modificateur de type entier permet d'assigner un niveau de
1529 sévérité à un item de format. L'item considéré ne
1530 sera journalisé que si la sévérité du message n'est pas
1531 plus haute que le niveau de sévérité spécifié. Les
1532 valeurs possibles vont de 1 (alert) à 15 (trace8), en passant par 4
1533 (warn) ou 7 (debug).</p>
1535 <p>Par exemple, voici ce qui arriverait si vous ajoutiez des
1536 modificateurs à l'item <code>%{Referer}i</code> qui enregistre le
1537 contenu de l'en-tête <code>Referer</code>.</p>
1539 <table border="1" style="zebra">
1540 <columnspec><column width=".3"/><column width=".7"/></columnspec>
1542 <tr><th>Item modifié</th><th>Signification</th></tr>
1545 <td><code>%-{Referer}i</code></td>
1546 <td>Enregistre le caractère <code>-</code> si l'en-tête
1547 <code>Referer</code> n'est pas défini.</td>
1551 <td><code>%+{Referer}i</code></td>
1552 <td>N'enregistre rien si l'en-tête
1553 <code>Referer</code> n'est pas défini.</td>
1557 <td><code>%4{Referer}i</code></td>
1558 <td>N'enregistre le contenu de l'en-tête <code>Referer</code> que si
1559 la sévérité du message de journalisation est supérieure à 4.</td>
1564 <p>Certains items de format acceptent des paramètres supplémentaires
1565 entre accolades.</p>
1567 <table border="1" style="zebra">
1568 <columnspec><column width=".2"/><column width=".8"/></columnspec>
1570 <tr><th>Chaîne de format</th> <th>Description</th></tr>
1572 <tr><td><code>%%</code></td>
1573 <td>Le signe pourcentage</td></tr>
1575 <tr><td><code>%a</code></td>
1576 <td>Adresse IP et port clients</td></tr>
1578 <tr><td><code>%{c}a</code></td>
1579 <td>Port et adresse IP sous-jacents du correspondant pour la
1580 connexion (voir le module
1581 <module>mod_remoteip</module>)</td></tr>
1583 <tr><td><code>%A</code></td>
1584 <td>Adresse IP et port locaux</td></tr>
1586 <tr><td><code>%{<em>name</em>}e</code></td>
1587 <td>Variable d'environnement de requête <em>name</em></td></tr>
1589 <tr><td><code>%E</code></td>
1590 <td>Etat d'erreur APR/OS et chaîne</td></tr>
1592 <tr><td><code>%F</code></td>
1593 <td>Nom du fichier source et numéro de ligne de l'appel du
1596 <tr><td><code>%{<em>name</em>}i</code></td>
1597 <td>En-tête de requête <em>name</em></td></tr>
1599 <tr><td><code>%k</code></td>
1600 <td>Nombre de requêtes persistantes pour cette connexion</td></tr>
1602 <tr><td><code>%l</code></td>
1603 <td>Sévérité du message</td></tr>
1605 <tr><td><code>%L</code></td>
1606 <td>Identifiant journal de la requête</td></tr>
1608 <tr><td><code>%{c}L</code></td>
1609 <td>Identifiant journal de la connexion</td></tr>
1611 <tr><td><code>%{C}L</code></td>
1612 <td>Identifiant journal de la connexion si utilisé dans la
1613 portée de la connexion, vide sinon</td></tr>
1615 <tr><td><code>%m</code></td>
1616 <td>Nom du module qui effectue la journalisation du message</td></tr>
1618 <tr><td><code>%M</code></td>
1619 <td>Le message effectif</td></tr>
1621 <tr><td><code>%{<em>name</em>}n</code></td>
1622 <td>Note de requête <em>name</em></td></tr>
1624 <tr><td><code>%P</code></td>
1625 <td>Identifiant du processus courant</td></tr>
1627 <tr><td><code>%T</code></td>
1628 <td>Identifiant du thread courant</td></tr>
1630 <tr><td><code>%{g}T</code></td>
1631 <td>Identifiant unique de thread système du thread courant
1632 (l'identifiant affiché par la commande <code>top</code> par
1633 exemple ; seulement sous Linux pour l'instant)</td></tr>
1635 <tr><td><code>%t</code></td>
1636 <td>L'heure courante</td></tr>
1638 <tr><td><code>%{u}t</code></td>
1639 <td>L'heure courante avec les microsecondes</td></tr>
1641 <tr><td><code>%{cu}t</code></td>
1642 <td>L'heure courante au format compact ISO 8601, avec les
1643 microsecondes</td></tr>
1645 <tr><td><code>%v</code></td>
1646 <td>Le nom de serveur canonique <directive
1647 module="core">ServerName</directive> du serveur courant.</td></tr>
1649 <tr><td><code>%V</code></td>
1650 <td>Le nom de serveur du serveur qui sert la requête en accord
1651 avec la définition de la directive <directive module="core"
1652 >UseCanonicalName</directive>.</td></tr>
1654 <tr><td><code>\ </code> (anti-slash espace)</td>
1655 <td>Espace non délimiteur</td></tr>
1657 <tr><td><code>% </code> (pourcentage espace)</td>
1658 <td>Délimiteur de champ (aucune sortie)</td></tr>
1661 <p>L'item de format identifiant journal <code>%L</code> génère un
1662 identifiant unique pour une connexion ou une requête. Il peut servir
1663 à déterminer quelles lignes correspondent à la même connexion ou
1664 requête ou quelle requête est associée à tel connexion. Un item de
1665 format <code>%L</code> est aussi disponible dans le module
1666 <module>mod_log_config</module>, mais il permet dans ce contexte de
1667 corréler les entrées du journal des accès avec celles du journal des
1668 erreurs. Si le module <module>mod_unique_id</module> est chargé,
1669 c'est son identifiant unique qui sera utilisé comme identifiant de
1670 journal pour les requêtes.</p>
1672 <example><title>Exemple (format par défaut)</title>
1673 ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a]
1674 %M% ,\ referer\ %{Referer}i"
1677 <p>Cet exemple renverrait un message d'erreur du style :</p>
1680 [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
1683 <p>Notez que, comme indiqué plus haut, certains champs sont
1684 totalement supprimés s'ils n'ont pas été définis.</p>
1686 <example><title>Exemple (similaire au format 2.2.x)</title>
1687 ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a]
1688 %M% ,\ referer\ %{Referer}i"
1691 <example><title>Exemple avancé avec identifiants journal de
1692 requête/connexion</title>
1693 ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"<br/>
1694 ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"<br/>
1695 ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"<br/>
1696 ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"<br/>
1697 ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"<br/>
1701 <seealso><directive module="core">ErrorLog</directive></seealso>
1702 <seealso><directive module="core">LogLevel</directive></seealso>
1703 <seealso><a href="../logs.html">Fichiers journaux du serveur HTTP Apache</a></seealso>
1704 </directivesynopsis>
1707 <name>ExtendedStatus</name>
1708 <description>Extrait des informations d'état étendues pour chaque
1709 requête</description>
1710 <syntax>ExtendedStatus On|Off</syntax>
1711 <default>ExtendedStatus Off</default>
1712 <contextlist><context>server config</context></contextlist>
1716 <p>Cette option permet d'extraire des données supplémentaires
1717 concernant la requête en cours de traitement pour un processus
1718 donné, ainsi qu'un résumé d'utilisation ; vous pouvez accéder à
1719 ces variables pendant l'exécution en configurant
1720 <module>mod_status</module>. Notez que d'autres modules sont
1721 susceptibles de s'appuyer sur ce tableau de bord.</p>
1723 <p>Cette directive s'applique au serveur dans son ensemble, et ne
1724 peut pas être activée/désactivée pour un serveur virtuel
1725 particulier. Notez que l'extraction des informations d'état étendues
1726 peut ralentir le serveur. Notez aussi que cette définition ne peut
1727 pas être modifiée au cours d'un redémarrage graceful.</p>
1730 <p>Notez que le chargement de <module>mod_status</module> définit
1731 automatiquement ExtendedStatus à On, et que d'autres modules tiers
1732 sont susceptibles d'en faire de même. De tels modules ont besoin
1733 d'informations détaillées à propos de l'état de tous les processus.
1734 Depuis la version 2.3.6, <module>mod_status</module> a définit la
1735 valeur par défaut à On, alors qu'elle était à Off dans les versions
1736 antérieures.</p>
1741 </directivesynopsis>
1744 <name>FileETag</name>
1745 <description>Caractéristiques de fichier utilisées lors de la génération
1746 de l'en-tête de réponse HTTP ETag pour les fichiers statiques</description>
1747 <syntax>FileETag <var>composant</var> ...</syntax>
1748 <default>FileETag MTime Size</default>
1749 <contextlist><context>server config</context><context>virtual
1751 <context>directory</context><context>.htaccess</context>
1753 <override>FileInfo</override>
1754 <compatibility>La valeur par défaut était "INode MTime Size"
1755 dans les versions 2.3.14 et antérieures.</compatibility>
1759 La directive <directive>FileETag</directive> définit les
1760 caractéristiques de fichier utilisées lors de la génération de
1761 l'en-tête de réponse HTTP <code>ETag</code> (entity tag) quand le
1762 document est contenu dans un fichier statique(la valeur de
1764 est utilisée dans le cadre de la gestion du cache pour préserver la
1765 bande passante réseau). La directive
1766 <directive>FileETag</directive> vous permet maintenant de choisir
1767 quelles caractéristiques du fichier vont être utilisées, le cas
1768 échéant. Les mots-clés reconnus sont :
1772 <dt><strong>INode</strong></dt>
1773 <dd>Le numéro d'i-node du fichier sera inclus dans le processus de
1774 génération</dd>
1775 <dt><strong>MTime</strong></dt>
1776 <dd>La date et l'heure auxquelles le fichier a été modifié la
1777 dernière fois seront incluses</dd>
1778 <dt><strong>Size</strong></dt>
1779 <dd>La taille du fichier en octets sera incluse</dd>
1780 <dt><strong>All</strong></dt>
1781 <dd>Tous les champs disponibles seront utilisés. Cette définition
1782 est équivalente à : <example>FileETag INode MTime
1784 <dt><strong>None</strong></dt>
1785 <dd>Si le document se compose d'un fichier, aucun champ
1786 <code>ETag</code> ne sera inclus dans la réponse</dd>
1789 <p>Les mots-clés <code>INode</code>, <code>MTime</code>, et
1790 <code>Size</code> peuvent être préfixés par <code>+</code> ou
1791 <code>-</code>, ce qui permet de modifier les valeurs par défaut
1792 héritées d'un niveau de configuration plus général. Tout mot-clé
1793 apparaissant sans aucun préfixe annule entièrement et immédiatement
1794 les configurations héritées.</p>
1796 <p>Si la configuration d'un répertoire contient
1797 <code>FileETag INode MTime Size</code>, et si un de
1798 ses sous-répertoires contient <code>FileETag -INode</code>, la
1799 configuration de ce sous-répertoire (qui sera propagée vers tout
1800 sous-répertoire qui ne la supplante pas), sera équivalente à
1801 <code>FileETag MTime Size</code>.</p>
1802 <note type="warning"><title>Avertissement</title>
1803 Ne modifiez pas les valeurs par défaut pour les répertoires ou
1804 localisations où WebDAV est activé et qui utilisent
1805 <module>mod_dav_fs</module> comme fournisseur de stockage.
1806 <module>mod_dav_fs</module> utilise
1807 <code>MTime Size</code> comme format fixe pour les
1808 comparaisons de champs <code>ETag</code> dans les requêtes
1809 conditionnelles. Ces requêtes conditionnelles échoueront si le
1810 format <code>ETag</code> est modifié via la directive
1811 <directive>FileETag</directive>.
1813 <note><title>Inclusions côté serveur</title>
1814 Aucun champ ETag n'est généré pour les réponses interprétées par
1815 <module>mod_include</module>, car l'entité de la réponse peut
1816 changer sans modification de l'INode, du MTime, ou de la taille du
1817 fichier statique contenant les directives SSI.
1822 </directivesynopsis>
1824 <directivesynopsis type="section">
1826 <description>Contient des directives qui s'appliquent aux fichiers
1827 précisés</description>
1828 <syntax><Files <var>nom fichier</var>> ... </Files></syntax>
1829 <contextlist><context>server config</context><context>virtual
1831 <context>directory</context><context>.htaccess</context>
1833 <override>All</override>
1836 <p>La directive <directive type="section">Files</directive> limite
1837 la portée des directives qu'elle contient aux fichiers précisés.
1838 Elle est comparable aux directives <directive module="core"
1839 type="section">Directory</directive> et <directive module="core"
1840 type="section">Location</directive>. Elle doit se terminer par une
1841 balise <code></Files></code>. Les directives contenues dans
1842 cette section s'appliqueront à tout objet dont le nom de base (la
1843 dernière partie du nom de fichier) correspond au fichier spécifié.
1844 Les sections <directive type="section">Files</directive> sont
1845 traitées selon l'ordre dans lequel elles apparaissent dans le
1846 fichier de configuration, après les sections <directive module="core"
1847 type="section">Directory</directive> et la lecture des fichiers
1848 <code>.htaccess</code>, mais avant les sections <directive
1849 type="section" module="core">Location</directive>. Notez que les
1850 sections <directive type="section">Files</directive> peuvent être
1851 imbriquées dans les sections <directive type="section"
1852 module="core">Directory</directive> afin de restreindre la portion
1853 du système de fichiers à laquelle ces dernières vont
1856 <p>L'argument <var>filename</var> peut contenir un nom de fichier
1857 ou une chaîne de caractères avec caractères génériques, où
1858 <code>?</code> remplace un caractère, et <code>*</code> toute chaîne
1859 de caractères. On peut aussi utiliser les <glossary
1860 ref="regex">Expressions rationnelles</glossary> en ajoutant la
1861 caractère <code>~</code>. Par exemple :</p>
1864 <Files ~ "\.(gif|jpe?g|png)$">
1867 <p>correspondrait à la plupart des formats graphiques de l'Internet.
1868 Il est cependant préférable d'utiliser la directive <directive
1869 module="core" type="section">FilesMatch</directive>.</p>
1871 <p>Notez qu'à la différence des sections <directive type="section"
1872 module="core">Directory</directive> et <directive type="section"
1873 module="core">Location</directive>, les sections <directive
1874 type="section">Files</directive> peuvent être utilisées dans les
1875 fichiers <code>.htaccess</code>. Ceci permet aux utilisateurs de
1876 contrôler l'accès à leurs propres ressources, fichier par
1880 <seealso><a href="../sections.html">Comment fonctionnent les sections
1881 <Directory>, <Location> et <Files></a> pour une
1882 explication de la manière dont ces différentes sections se combinent
1883 entre elles à la réception d'une requête</seealso>
1884 </directivesynopsis>
1886 <directivesynopsis type="section">
1887 <name>FilesMatch</name>
1888 <description>Contient des directives qui s'appliquent à des fichiers
1889 spécifiés sous la forme d'expressions rationnelles</description>
1890 <syntax><FilesMatch <var>expression rationnelle</var>> ...
1891 </FilesMatch></syntax>
1892 <contextlist><context>server config</context><context>virtual
1894 <context>directory</context><context>.htaccess</context>
1896 <override>All</override>
1899 <p>La section <directive type="section">FilesMatch</directive>
1900 limite la portée des directives qu'elle contient aux fichiers
1901 spécifiés, tout comme le ferait une section <directive module="core"
1902 type="section">Files</directive>. Mais elle accepte aussi les
1903 <glossary ref="regex">expressions rationnelles</glossary>. Par
1907 <FilesMatch "\.(gif|jpe?g|png)$">
1910 <p>correspondrait à la plupart des formats graphiques de
1914 <seealso><a href="../sections.html">Comment fonctionnent les sections
1915 <Directory>, <Location> et <Files></a> pour une
1916 explication de la manière dont ces différentes sections se combinent
1917 entre elles à la réception d'une requête</seealso>
1918 </directivesynopsis>
1921 <name>ForceType</name>
1922 <description>Force le type de médium spécifié dans le champ d'en-tête
1923 HTTP Content-Type pour les fichiers correspondants</description>
1924 <syntax>ForceType <var>type médium</var>|None</syntax>
1925 <contextlist><context>directory</context><context>.htaccess</context>
1927 <override>FileInfo</override>
1928 <compatibility>Intégré dans le coeur d'Apache httpd depuis la version
1932 <p>Lorsqu'elle est placée dans un fichier <code>.htaccess</code> ou
1933 une section <directive type="section"
1934 module="core">Directory</directive>, <directive type="section"
1935 module="core">Location</directive>, ou <directive type="section"
1936 module="core">Files</directive>, cette directive force
1937 l'identification du type MIME des fichiers spécifiés à la valeur de
1938 l'argument <var>type médium</var>. Par exemple, si vous possédez un
1939 répertoire ne contenant que des fichiers GIF, et si vous ne voulez
1940 pas leur ajouter l'extension <code>.gif</code>, vous pouvez utiliser
1947 <p>Notez que cette directive l'emporte sur d'autres associations de
1948 type de médium indirectes définies dans mime.types ou via la
1949 directive <directive module="mod_mime">AddType</directive>.</p>
1951 <p>Vous pouvez aussi annuler toute définition plus générale de
1952 <directive>ForceType</directive> en affectant la valeur
1953 <code>None</code> à l'argument <var>type médium</var> :</p>
1956 # force le type MIME de tous les fichiers à image/gif:<br />
1957 <Location /images><br />
1959 ForceType image/gif<br />
1961 </Location><br />
1963 # mais utilise les méthodes classiques d'attribution du type MIME
1964 # dans le sous-répertoire suivant :<br />
1965 <Location /images/mixed><br />
1967 ForceType None<br />
1972 <p>A la base, cette directive écrase le type de contenu généré pour
1973 les fichiers statiques servis à partir du sytème de fichiers. Pour
1974 les ressources autres que les fichiers statiques pour lesquels le
1975 générateur de réponse spécifie en général un type de contenu, cette
1976 directive est ignorée.</p>
1979 </directivesynopsis>
1981 <name>GprofDir</name>
1982 <description>Répertoire dans lequel écrire les données de profiling
1983 gmon.out.</description>
1984 <syntax>GprofDir <var>/tmp/gprof/</var>|<var>/tmp/gprof/</var>%</syntax>
1985 <contextlist><context>server config</context><context>virtual host</context>
1989 <p>Lorsque le serveur a été compilé avec le support du profiling
1990 gprof, la directive <directive>GprofDir</directive> permet de
1991 spécifier dans quel répertoire les fichiers <code>gmon.out</code>
1992 doivent être écrits lorsque le processus s'arrête. Si l'argument se
1993 termine par un caractère pourcentage ('%'), des sous-répertoires
1994 sont créés pour chaque identifiant de processus.</p>
1996 <p>Cette directive ne fonctionne actuellement qu'avec le MPM
1997 <module>prefork</module>.</p>
1999 </directivesynopsis>
2002 <name>HostnameLookups</name>
2003 <description>Active la recherche DNS sur les adresses IP des
2004 clients</description>
2005 <syntax>HostnameLookups On|Off|Double</syntax>
2006 <default>HostnameLookups Off</default>
2007 <contextlist><context>server config</context><context>virtual
2009 <context>directory</context></contextlist>
2012 <p>Cette directive active la recherche DNS afin de pouvoir
2013 journaliser les nom d'hôtes (et les passer aux programmes CGI et aux
2014 inclusions SSI via la variable <code>REMOTE_HOST</code>). La valeur
2015 <code>Double</code> déclenche une double recherche DNS inverse. En
2016 d'autres termes, une fois la recherche inverse effectuée, on lance
2017 une recherche directe sur le résultat de cette dernière. Au moins
2018 une des adresses IP fournies par la recherche directe doit
2019 correspondre à l'adresse originale (ce que l'on nomme
2020 <code>PARANOID</code> dans la terminologie "tcpwrappers").</p>
2022 <p>Quelle que soit la configuration, lorsqu'on utilise
2023 <module>mod_authz_host</module> pour contrôler l'accès en fonction
2024 du nom d'hôte, une double recherche DNS inverse est effectuée,
2025 sécurité oblige. Notez cependant que le résultat de cette double
2026 recherche n'est en général pas accessible, à moins que vous n'ayez
2027 spécifié <code>HostnameLookups Double</code>. Par exemple, si vous
2028 n'avez spécifié que <code>HostnameLookups On</code>, et si une
2029 requête concerne un objet protégé par des restrictions en fonction
2030 du nom d'hôte, quel que soit le résultat de la double recherche
2031 inverse, les programmes CGI ne recevront que le résultat de la
2032 recherche inverse simple dans la variable
2033 <code>REMOTE_HOST</code>.</p>
2035 <p>La valeur par défaut est <code>Off</code> afin de préserver le
2036 traffic réseau des sites pour lesquels la recherche inverse n'est
2037 pas vraiment nécessaire. Cette valeur par défaut est aussi bénéfique
2038 pour les utilisateurs finaux car il n'ont ainsi pas à subir de temps
2039 d'attente supplémentaires dus aux recherches DNS. Les sites
2040 fortement chargés devraient laisser cette directive à
2041 <code>Off</code>, car les recherches DNS peuvent prendre des temps
2042 très longs. Vous pouvez éventuellement utiliser hors ligne
2043 l'utilitaire <program>logresolve</program>, compilé par défaut dans
2044 le sous-répertoire <code>bin</code> de votre répertoire
2045 d'installation, afin de déterminer les noms d'hôtes associés aux
2046 adresses IP journalisées.</p>
2048 <p>Enfin, si vous avez des <a
2049 href="mod_authz_host.html#reqhost">directives Require à base de
2050 nom</a>, une recherche de nom d'hôte sera effectuée quelle que soit
2051 la définition de la directive <code>HostnameLookups</code>.</p>
2053 </directivesynopsis>
2055 <directivesynopsis type="section">
2057 <description>Contient des directives qui ne s'appliquent que si une
2058 condition est satisfaite au cours du traitement d'une
2059 requête</description>
2060 <syntax><If <var>expression</var>> ... </If></syntax>
2061 <contextlist><context>server config</context><context>virtual
2063 <context>directory</context><context>.htaccess</context>
2065 <override>All</override>
2068 <p>La directive <directive type="section">If</directive> évalue une
2069 expression à la volée, et applique les directives qu'elle contient
2070 si et seulement si l'expression renvoie la valeur "vrai". Par
2074 <If "-z req('Host')">
2077 <p>serait satisfaite pour les requêtes HTTP/1.0 sans en-tête
2078 <var>Host:</var>. Les expressions peuvent contenir différents
2079 opérateurs de type shell pour la comparaison de chaînes
2080 (<code>=</code>, <code>!=</code>, <code><</code>, ...), la
2081 comparaison d'entiers (<code>-eq</code>, <code>-ne</code>, ...), ou
2082 à usages divers (<code>-n</code>, <code>-z</code>, <code>-f</code>,
2083 ...). Les expressions rationnelles sont aussi supportées,</p>
2086 <If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/">
2089 <p>ainsi que les comparaison de modèles de type shell et de
2090 nombreuses autres opérations. Ces opérations peuvent être effectuées
2091 sur les en-têtes de requêtes (<code>req</code>), les variables
2092 d'environnement (<code>env</code>), et un grand nombre d'autres
2093 propriétés. La documentation complète est disponible dans <a
2094 href="../expr.html">Les expressions dans le serveur HTTP Apache</a>.</p>
2098 <seealso><a href="../expr.html">Les expressions dans le serveur HTTP
2099 Apache</a>, pour une référence complète et d'autres exemples.</seealso>
2100 <seealso><directive type="section" module="core">ElseIf</directive></seealso>
2101 <seealso><directive type="section" module="core">Else</directive></seealso>
2102 <seealso><a href="../sections.html">Comment fonctionnent les sections
2103 <Directory>, <Location> et <Files></a> pour une
2104 explication de la manière dont ces différentes sections se combinent
2105 entre elles à la réception d'une requête. Les
2106 directives <directive type="section">If</directive>, <directive
2107 type="section">ElseIf</directive>, et <directive
2108 type="section">Else</directive> s'appliquent en dernier.</seealso>
2109 </directivesynopsis>
2111 <directivesynopsis type="section">
2112 <name>IfDefine</name>
2113 <description>Contient des directives qui ne s'appliqueront que si un
2114 test retourne "vrai" au démarrage du serveur</description>
2115 <syntax><IfDefine [!]<var>paramètre</var>> ...
2116 </IfDefine></syntax>
2117 <contextlist><context>server config</context><context>virtual
2119 <context>directory</context><context>.htaccess</context>
2121 <override>All</override>
2124 <p>La section <code><IfDefine
2125 <var>test</var>>...</IfDefine></code> permet de
2126 conférer un caractère conditionnel à un ensemble de directives. Les
2127 directives situées à l'intérieur d'une section <directive
2128 type="section">IfDefine</directive> ne s'appliquent que si
2129 <var>test</var> est vrai. Si <var>test</var> est faux, tout ce qui
2130 se trouve entre les balises de début et de fin est ignoré.</p>
2132 <p><var>test</var> peut se présenter sous deux formes :</p>
2135 <li><var>nom paramètre</var></li>
2137 <li><code>!</code><var>nom paramètre</var></li>
2140 <p>Dans le premier cas, les directives situées entre les balises de
2141 début et de fin ne s'appliqueront que si le paramètre nommé <var>nom
2142 paramètre</var> est défini. Le second format inverse le test, et
2143 dans ce cas, les directives ne s'appliqueront que si <var>nom
2144 paramètre</var> n'est <strong>pas</strong> défini.</p>
2146 <p>L'argument <var>nom paramètre</var> est une définition qui peut
2147 être effectuée par la ligne de commande
2148 <program>httpd</program> via le paramètre
2149 <code>-D<var>paramètre</var></code> au démarrage du serveur, ou via la
2150 directive <directive module="core">Define</directive>.</p>
2152 <p>Les sections <directive type="section">IfDefine</directive>
2153 peuvent être imbriquées, ce qui permet d'implémenter un test
2154 multi-paramètres simple. Exemple :</p>
2157 httpd -DReverseProxy -DUseCache -DMemCache ...<br />
2160 <IfDefine ReverseProxy><br />
2162 LoadModule proxy_module modules/mod_proxy.so<br />
2163 LoadModule proxy_http_module modules/mod_proxy_http.so<br />
2164 <IfDefine UseCache><br />
2166 LoadModule cache_module modules/mod_cache.so<br />
2167 <IfDefine MemCache><br />
2169 LoadModule mem_cache_module modules/mod_mem_cache.so<br />
2171 </IfDefine><br />
2172 <IfDefine !MemCache><br />
2174 LoadModule cache_disk_module modules/mod_cache_disk.so<br />
2183 </directivesynopsis>
2185 <directivesynopsis type="section">
2186 <name>IfModule</name>
2187 <description>Contient des directives qui ne s'appliquent qu'en fonction
2188 de la présence ou de l'absence d'un module spécifique</description>
2189 <syntax><IfModule [!]<var>fichier module</var>|<var>identificateur
2190 module</var>> ... </IfModule></syntax>
2191 <contextlist><context>server config</context><context>virtual
2193 <context>directory</context><context>.htaccess</context>
2195 <override>All</override>
2196 <compatibility>Les identificateurs de modules sont disponibles dans les
2197 versions 2.1 et supérieures.</compatibility>
2200 <p>La section <code><IfModule
2201 <var>test</var>>...</IfModule></code> permet de conférer à
2202 des directives un caractère conditionnel basé sur la présence d'un
2203 module spécifique. Les directives situées dans une section
2204 <directive type="section">IfModule</directive> ne s'appliquent que
2205 si <var>test</var> est vrai. Si <var>test</var> est faux, tout ce
2206 qui se trouve entre les balises de début et de fin est ignoré.</p>
2208 <p><var>test</var> peut se présenter sous deux formes :</p>
2211 <li><var>module</var></li>
2213 <li>!<var>module</var></li>
2216 <p>Dans le premier cas, les directives situées entre les balises de
2217 début et de fin ne s'appliquent que si le module <var>module</var>
2218 est présent -- soit compilé avec le binaire Apache httpd, soit chargé
2219 dynamiquement via la directive <directive module="mod_so"
2220 >LoadModule</directive>. Le second format inverse le test, et dans
2221 ce cas, les directives ne s'appliquent que si <var>module</var>
2222 n'est <strong>pas</strong> présent.</p>
2224 <p>L'argument <var>module</var> peut contenir soit l'identificateur
2225 du module, soit le nom du fichier source du module. Par exemple,
2226 <code>rewrite_module</code> est un identificateur et
2227 <code>mod_rewrite.c</code> le nom du fichier source
2228 correspondant. Si un module comporte plusieurs fichiers sources,
2229 utilisez le nom du fichier qui contient la chaîne de caractères
2230 <code>STANDARD20_MODULE_STUFF</code>.</p>
2232 <p>Les sections <directive type="section">IfModule</directive>
2233 peuvent être imbriquées, ce qui permet d'implémenter des tests
2234 multi-modules simples.</p>
2236 <note>Cette section ne doit être utilisée que si votre fichier de
2237 configuration ne fonctionne qu'en fonction de la présence ou de
2238 l'absence d'un module spécifique. D'une manière générale, il n'est
2239 pas nécessaire de placer les directives à l'intérieur de sections
2240 <directive type="section">IfModule</directive>.</note>
2242 </directivesynopsis>
2245 <name>Include</name>
2246 <description>Inclut d'autres fichiers de configuration dans un des
2247 fichiers de configuration du serveur</description>
2248 <syntax>Include <var>chemin-fichier</var>|<var>chemin-répertoire</var>|<var>wildcard</var></syntax>
2249 <contextlist><context>server config</context><context>virtual
2251 <context>directory</context>
2253 <compatibility>Utilisation des caractères génériques dans la partie nom
2254 de fichier depuis la version 2.0.41, et dans la partie chemin depuis la
2255 version 2.3.6</compatibility>
2258 <p>Cette directive permet l'inclusion d'autres fichiers de
2259 configuration dans un des fichiers de configuration du serveur.</p>
2261 <p>On peut utiliser des caractères génériques de style Shell
2262 (<code>fnmatch()</code>) aussi bien dans la partie nom de fichier du
2263 chemin que dans la partie répertoires pour inclure plusieurs
2265 seule fois, selon leur ordre alphabétique. De plus, si la directive
2266 <directive>Include</directive> pointe vers un répertoire, Apache
2267 httpd inclura tous les fichiers de ce répertoire et de tous ces
2268 sous-répertoires. L'inclusion de répertoires entiers est cependant
2269 déconseillée, car il est fréquent d'oublier des fichiers
2270 temporaires dans un répertoire, ce qui causerait une erreur
2271 <program>httpd</program> en cas d'inclusion. Pour inclure des
2272 fichiers qui correspondent à un certain modèle, comme *.conf par
2273 exemple, nous vous recommandons d'utiliser plutôt la syntaxe avec
2274 caractères génériques comme ci-dessous.</p>
2276 <p>La directive <directive module="core">Include</directive>
2277 <strong>échouera avec un code d'erreur</strong> si une expression
2278 contenant des caractères génériques ne correspond à aucun fichier.
2279 Pour ignorer les expressions contenant des caractères génériques ne
2280 correspondant à aucun fichier, utilisez la directive <directive
2281 module="core">IncludeOptional</directive>.</p>
2283 <p>Le chemin fichier spécifié peut être soit un chemin absolu, soit
2284 un chemin relatif au répertoire défini par la directive <directive
2285 module="core">ServerRoot</directive>.</p>
2290 Include /usr/local/apache2/conf/ssl.conf<br />
2291 Include /usr/local/apache2/conf/vhosts/*.conf
2294 <p>ou encore, avec des chemins relatifs au répertoire défini par la
2295 directive <directive module="core">ServerRoot</directive> :</p>
2298 Include conf/ssl.conf<br />
2299 Include conf/vhosts/*.conf
2302 <p>On peut aussi insérer des caractères génériques dans la partie
2303 répertoires du chemin. Dans l'exemple suivant, la directive
2304 échouera si aucun sous-répertoire de conf/vhosts ne contient au
2305 moins un fichier *.conf :</p>
2308 Include conf/vhosts/*/*.conf
2311 <p>Par contre, dans l'exemple suivant, la directive sera simplement
2312 ignorée si aucun sous-répertoire de conf/vhosts ne contient au
2313 moins un fichier *.conf :</p>
2316 IncludeOptional conf/vhosts/*/*.conf
2321 <seealso><directive module="core">IncludeOptional</directive></seealso>
2322 <seealso><program>apachectl</program></seealso>
2323 </directivesynopsis>
2326 <name>IncludeOptional</name>
2327 <description>Inclusion de fichiers dans le fichier de configuration</description>
2328 <syntax>IncludeOptional
2329 <var>chemin-fichier</var>|<var>chemin-répertoire</var>|<var>wildcard</var></syntax>
2330 <contextlist><context>server config</context><context>virtual host</context>
2331 <context>directory</context>
2333 <compatibility>Disponible à partir de la version 2.3.6 du serveur HTTP
2334 Apache</compatibility>
2337 <p>Cette directive permet d'inclure des fichiers dans les fichiers
2338 de configuration du serveur. Elle fonctionne de manière identique à
2339 la directive <directive module="core">Include</directive>, à
2340 l'exception du fait que si l'expression avec caractères génériques
2341 wilcard ne correspond à aucun fichier ou répertoire, elle sera
2342 ignorée silencieusement au lieu de causer une erreur.</p>
2346 <seealso><directive module="core">Include</directive></seealso>
2347 <seealso><program>apachectl</program></seealso>
2348 </directivesynopsis>
2351 <name>KeepAlive</name>
2352 <description>Active les connexions HTTP persistantes</description>
2353 <syntax>KeepAlive On|Off</syntax>
2354 <default>KeepAlive On</default>
2355 <contextlist><context>server config</context><context>virtual
2360 <p>L'extension Keep-Alive de HTTP/1.0 et l'implémentation des
2361 connexions persistantes dans HTTP/1.1 ont rendu possibles des
2362 sessions HTTP de longue durée, ce qui permet de transmettre
2363 plusieurs requêtes via la même connexion TCP. Dans certains cas, le
2364 gain en rapidité pour des documents comportant de nombreuses images
2365 peut atteindre 50%. Pour activer les connexions persistantes,
2366 définissez <code>KeepAlive On</code>.</p>
2368 <p>Pour les clients HTTP/1.0, les connexions persistantes ne seront
2369 mises en oeuvre que si elles ont été spécialement demandées par un
2370 client. De plus, une connexion persistante avec un client HTTP/1.0
2371 ne peut être utilisée que si la taille du contenu est connue
2372 d'avance. Ceci implique que les contenus dynamiques comme les
2373 sorties CGI, les pages SSI, et les listings de répertoires générés
2374 par le serveur n'utiliseront en général pas les connexions
2375 persistantes avec les clients HTTP/1.0. Avec les clients HTTP/1.1,
2376 les connexions persistantes sont utilisées par défaut, sauf
2377 instructions contraires. Si le client le demande, le transfert par
2378 tronçons de taille fixe (chunked encoding) sera utilisé afin de
2379 transmettre un contenu de longueur inconnue via une connexion
2382 <p>Lorsqu'un client utilise une connexion persistante, elle comptera
2383 pour une seule requête pour la directive <directive
2384 module="mpm_common">MaxConnectionsPerChild</directive>, quel
2385 que soit le nombre de requêtes transmises via cette connexion.</p>
2388 <seealso><directive module="core">MaxKeepAliveRequests</directive></seealso>
2389 </directivesynopsis>
2392 <name>KeepAliveTimeout</name>
2393 <description>Durée pendant laquelle le serveur va attendre une requête
2394 avant de fermer une connexion persistante</description>
2395 <syntax>KeepAliveTimeout <var>nombre</var>[ms]</syntax>
2396 <default>KeepAliveTimeout 5</default>
2397 <contextlist><context>server config</context><context>virtual
2400 <compatibility>La spécification d'une valeur en millisecondes est
2401 possible depuis les versions 2.3.2 et supérieures d'Apache httpd</compatibility>
2404 <p>Le nombre de secondes pendant lesquelles Apache httpd va attendre une
2405 requête avant de fermer la connexion. Le délai peut être défini en
2406 millisecondes en suffixant sa valeur par ms. La valeur du délai
2407 spécifiée par la directive <directive
2408 module="core">Timeout</directive> s'applique dès qu'une requête a
2409 été reçue.</p>
2411 <p>Donner une valeur trop élévée à
2412 <directive>KeepAliveTimeout</directive> peut induire des problèmes
2413 de performances sur les serveurs fortement chargés. Plus le délai
2414 est élévé, plus nombreux seront les processus serveur en attente de
2415 requêtes de la part de clients inactifs.</p>
2417 <p>Dans un contexte de serveur virtuel à base de nom, c'est
2418 la valeur de la paire adresse IP/port du serveur virtuel qui
2419 correspond le mieux qui sera utilisée.</p>
2421 </directivesynopsis>
2423 <directivesynopsis type="section">
2425 <description>Limite les contrôles d'accès que la section contient à
2426 certaines méthodes HTTP</description>
2427 <syntax><Limit <var>méthode</var> [<var>méthode</var>] ... > ...
2428 </Limit></syntax>
2429 <contextlist><context>directory</context><context>.htaccess</context>
2431 <override>AuthConfig, Limit</override>
2434 <p>Les contrôles d'accès s'appliquent normalement à
2435 <strong>toutes</strong> les méthodes d'accès, et c'est en général le
2436 comportement souhaité. <strong>Dans le cas général, les directives
2437 de contrôle d'accès n'ont pas à être placées dans une section
2438 <directive type="section">Limit</directive>.</strong></p>
2440 <p>La directive <directive type="section">Limit</directive> a pour
2441 but de limiter les effets des contrôles d'accès aux méthodes HTTP
2442 spécifiées. Pour toutes les autres méthodes, les restrictions
2443 d'accès contenues dans la section <directive
2444 type="section">Limit</directive> <strong>n'auront aucun
2445 effet</strong>. L'exemple suivant n'applique les contrôles d'accès
2446 qu'aux méthodes <code>POST</code>, <code>PUT</code>, et
2447 <code>DELETE</code>, en laissant les autres méthodes sans protection
2451 <Limit POST PUT DELETE><br />
2453 Require valid-user<br />
2458 <p>La liste des noms de méthodes peut contenir une ou plusieurs
2459 valeurs parmi les suivantes : <code>GET</code>, <code>POST</code>,
2460 <code>PUT</code>, <code>DELETE</code>, <code>CONNECT</code>,
2461 <code>OPTIONS</code>, <code>PATCH</code>, <code>PROPFIND</code>,
2462 <code>PROPPATCH</code>, <code>MKCOL</code>, <code>COPY</code>,
2463 <code>MOVE</code>, <code>LOCK</code>, et <code>UNLOCK</code>.
2464 <strong>Le nom de méthode est sensible à la casse.</strong> Si la
2465 valeur <code>GET</code> est présente, les requêtes <code>HEAD</code>
2466 seront aussi concernées. La méthode <code>TRACE</code> ne peut pas
2467 être limitée (voir la directive <directive
2468 module="core">TraceEnable</directive>).</p>
2470 <note type="warning">Une section <directive
2471 type="section">LimitExcept</directive> doit toujours être préférée à
2472 une section <directive type="section">Limit</directive> pour la
2473 restriction d'accès, car une section <directive type="section"
2474 module="core">LimitExcept</directive> fournit une protection contre
2475 les méthodes arbitraires.</note>
2477 <p>Les directives <directive type="section">Limit</directive> et
2478 <directive type="section" module="core">LimitExcept</directive>
2479 peuvent être imbriquées. Dans ce cas, pour chaque niveau des
2480 directives <directive type="section">Limit</directive> ou <directive
2481 type="section" module="core">LimitExcept</directive>, ces dernières
2482 doivent restreindre l'accès pour les méthodes auxquelles les
2483 contrôles d'accès s'appliquent.</p>
2485 <note type="warning">Lorsqu'on utilise les directives <directive
2486 type="section">Limit</directive> ou <directive
2487 type="section">LimitExcept</directive> avec la directive <directive
2488 module="mod_authz_core">Require</directive>, la première directive
2489 <directive module="mod_authz_core">Require</directive> dont la
2490 condition est satisfaite autorise la requête, sans tenir compte de
2491 la présence d'autres directives <directive
2492 module="mod_authz_core">Require</directive>.</note>
2494 <p>Par exemple, avec la configuration suivante, tous les
2495 utilisateurs seront autorisés à effectuer des requêtes
2496 <code>POST</code>, et la directive <code>Require group
2497 editors</code> sera ignorée dans tous les cas :</p>
2500 <LimitExcept GET>
2504 </LimitExcept><br />
2507 Require group editors
2512 </directivesynopsis>
2514 <directivesynopsis type="section">
2515 <name>LimitExcept</name>
2516 <description>Applique les contrôles d'accès à toutes les méthodes HTTP,
2517 sauf celles qui sont spécifiées</description>
2518 <syntax><LimitExcept <var>méthode</var> [<var>méthode</var>] ... > ...
2519 </LimitExcept></syntax>
2520 <contextlist><context>directory</context><context>.htaccess</context>
2522 <override>AuthConfig, Limit</override>
2525 <p><directive type="section">LimitExcept</directive> et
2526 <code></LimitExcept></code> permettent de regrouper des
2527 directives de contrôle d'accès qui s'appliqueront à toutes les
2528 méthodes d'accès HTTP qui ne font <strong>pas</strong> partie de la
2529 liste des arguments ; en d'autres termes, elles ont un comportement
2530 opposé à celui de la section <directive type="section"
2531 module="core">Limit</directive>, et on peut les utiliser pour
2532 contrôler aussi bien les méthodes standards que les méthodes non
2533 standards ou non reconnues. Voir la documentation de la section
2534 <directive module="core" type="section">Limit</directive> pour plus
2535 de détails.</p>
2537 <p>Par exemple :</p>
2540 <LimitExcept POST GET><br />
2542 Require valid-user<br />
2544 </LimitExcept>
2548 </directivesynopsis>
2551 <name>LimitInternalRecursion</name>
2552 <description>Détermine le nombre maximal de redirections internes et de
2553 sous-requêtes imbriquées</description>
2554 <syntax>LimitInternalRecursion <var>nombre</var> [<var>nombre</var>]</syntax>
2555 <default>LimitInternalRecursion 10</default>
2556 <contextlist><context>server config</context><context>virtual
2559 <compatibility>Disponible à partir de la version 2.0.47 d'Apache httpd</compatibility>
2562 <p>Une redirection interne survient, par exemple, quand on utilise
2563 la directive <directive module="mod_actions">Action</directive> qui
2564 redirige en interne la requête d'origine vers un script CGI. Une
2565 sous-requête est le mécanisme qu'utilise Apache httpd pour déterminer ce
2566 qui se passerait pour un URI s'il faisait l'objet d'une requête. Par
2567 exemple, <module>mod_dir</module> utilise les sous-requêtes pour
2568 rechercher les fichiers listés dans la directive <directive
2569 module="mod_dir">DirectoryIndex</directive>.</p>
2571 <p>La directive <directive>LimitInternalRecursion</directive> permet
2572 d'éviter un crash du serveur dû à un bouclage infini de redirections
2573 internes ou de sous-requêtes. De tels bouclages sont dus en général
2574 à des erreurs de configuration.</p>
2576 <p>La directive accepte, comme arguments, deux limites qui sont
2577 évaluées à chaque requête. Le premier <var>nombre</var> est le
2578 nombre maximum de redirections internes qui peuvent se succéder. Le
2579 second <var>nombre</var> détermine la profondeur d'imbrication
2580 maximum des sous-requêtes. Si vous ne spécifiez qu'un seul
2581 <var>nombre</var>, il sera affecté aux deux limites.</p>
2583 <example><title>Exemple</title>
2584 LimitInternalRecursion 5
2587 </directivesynopsis>
2590 <name>LimitRequestBody</name>
2591 <description>limite la taille maximale du corps de la requête HTTP
2592 envoyée par le client</description>
2593 <syntax>LimitRequestBody <var>octets</var></syntax>
2594 <default>LimitRequestBody 0</default>
2595 <contextlist><context>server config</context><context>virtual
2597 <context>directory</context><context>.htaccess</context>
2599 <override>All</override>
2602 <p>Cette directive spécifie la taille maximale autorisée pour le
2603 corps d'une requête ; la valeur de l'argument <var>octets</var> va
2604 de 0 (pour une taille illimitée), à 2147483647 (2Go). Voir la note
2605 ci-dessous pour la limite d'applicabilité aux requêtes mandatées.</p>
2607 <p>La directive <directive>LimitRequestBody</directive> permet de
2608 définir une limite pour la taille maximale autorisée du corps d'une
2609 requête HTTP en tenant compte du contexte dans lequel la directive
2610 a été placée (c'est à dire au niveau du serveur, d'un répertoire,
2611 d'un fichier ou d'une localisation). Si la requête du client dépasse
2612 cette limite, le serveur répondra par un message d'erreur et ne
2613 traitera pas la requête. La taille du corps d'une requête normale va
2614 varier de manière importante en fonction de la nature de la
2615 ressource et des méthodes autorisées pour cette dernière. Les
2616 scripts CGI utilisent souvent le corps du message pour extraire les
2617 informations d'un formulaire. Les implémentations de la méthode
2618 <code>PUT</code> nécessitent une valeur au moins aussi élevée que la
2619 taille maximale des représentations que le serveur désire accepter
2620 pour cette ressource.</p>
2622 <p>L'administrateur du serveur peut utiliser cette directive pour
2623 contrôler plus efficacement les comportements anormaux des requêtes
2624 des clients, ce qui lui permettra de prévenir certaines formes
2625 d'attaques par déni de service.</p>
2627 <p>Si par exemple, vous autorisez le chargement de fichiers vers une
2628 localisation particulière, et souhaitez limiter la taille des
2629 fichiers chargés à 100Ko, vous pouvez utiliser la directive suivante
2633 LimitRequestBody 102400
2636 <note><p>Pour une description détaillée de la manière dont cette
2637 directive est interprétée par les requêtes mandatées, voir la
2638 documentation du module <module>mod_proxy</module>.</p>
2642 </directivesynopsis>
2645 <name>LimitRequestFields</name>
2646 <description>Limite le nombre de champs d'en-tête autorisés dans une
2647 requête HTTP</description>
2648 <syntax>LimitRequestFields <var>nombre</var></syntax>
2649 <default>LimitRequestFields 100</default>
2650 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2653 <p><var>nombre</var> est un entier de 0 (nombre de champs illimité)
2654 à 32767. La valeur par défaut est définie à la compilation par la
2655 constante <code>DEFAULT_LIMIT_REQUEST_FIELDS</code> (100 selon la
2658 <p>La directive <directive>LimitRequestFields</directive> permet à
2659 l'administrateur du serveur de modifier le nombre maximum de champs
2660 d'en-tête autorisés dans une requête HTTP. Pour un serveur, cette
2661 valeur doit être supérieure au nombre de champs qu'une requête
2662 client normale peut contenir. Le nombre de champs d'en-tête d'une
2663 requête qu'un client utilise dépasse rarement 20, mais ce nombre
2664 peut varier selon les implémentations des clients, et souvent en
2665 fonction des extensions que les utilisateurs configurent dans leurs
2666 navigateurs pour supporter la négociation de contenu détaillée. Les
2667 extensions HTTP optionnelles utilisent souvent les
2668 champs d'en-tête des requêtes.</p>
2670 <p>L'administrateur du serveur peut utiliser cette directive pour
2671 contrôler plus efficacement les comportements anormaux des requêtes
2672 des clients, ce qui lui permettra de prévenir certaines formes
2673 d'attaques par déni de service. La valeur spécifiée doit être
2674 augmentée si les clients standards reçoivent une erreur du serveur
2675 indiquant que la requête comportait un nombre d'en-têtes trop
2678 <p>Par exemple :</p>
2681 LimitRequestFields 50
2684 <note type="warning"><title>Avertissement</title>
2685 <p>Dans le cas des serveurs virtuels à base de noms, la valeur de
2686 cette directive est extraite du serveur virtuel par défaut (le
2687 premier de la liste) pour la paire adresse IP/port.</p>
2691 </directivesynopsis>
2694 <name>LimitRequestFieldSize</name>
2695 <description>Dédinit la taille maximale autorisée d'un en-tête de
2696 requête HTTP</description>
2697 <syntax>LimitRequestFieldSize <var>octets</var></syntax>
2698 <default>LimitRequestFieldSize 8190</default>
2699 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2702 <p>Cette directive permet de définir le nombre maximum
2703 d'<var>octets</var> autorisés dans un en-tête de requête HTTP.</p>
2705 <p>La directive <directive>LimitRequestFieldSize</directive> permet
2706 à l'administrateur du serveur de définir la taille
2707 maximale autorisée d'un en-tête de requête HTTP. Pour un serveur,
2708 cette valeur doit être suffisamment grande pour contenir tout
2709 en-tête d'une requête client normale. La taille d'un champ d'en-tête
2710 de requête normal va varier selon les implémentations des clients,
2711 et en fonction des extensions que les utilisateurs
2712 configurent dans leurs navigateurs pour supporter la négociation de
2713 contenu détaillée. Les en-têtes d'authentification SPNEGO peuvent
2714 atteindre une taille de 12392 octets.</p>
2716 <p>>L'administrateur du serveur peut utiliser cette directive pour
2717 contrôler plus efficacement les comportements anormaux des requêtes
2718 des clients, ce qui lui permettra de prévenir certaines formes
2719 d'attaques par déni de service.</p>
2721 <p>Par exemple ::</p>
2724 LimitRequestFieldSize 4094
2727 <note>Dans des conditions normales, la valeur par défaut de cette
2728 directive ne doit pas être modifiée. En outre, vous ne
2729 pouvez pas spécifier une valeur supérieure à 8190 sans modifier le
2730 code source et recompiler.</note>
2732 <note type="warning"><title>Avertissement</title>
2733 <p>Dans le cas des serveurs virtuels à base de noms, la valeur de
2734 cette directive est extraite du serveur virtuel par défaut (le
2735 premier de la liste) pour lequel la paire adresse IP/port
2736 correspond le mieux.</p>
2739 </directivesynopsis>
2742 <name>LimitRequestLine</name>
2743 <description>Définit la taille maximale d'une ligne de requête
2745 <syntax>LimitRequestLine <var>octets</var></syntax>
2746 <default>LimitRequestLine 8190</default>
2747 <contextlist><context>server config</context><context>virtual host</context></contextlist>
2750 <p>Cette directive permet de définir la taille maximale autorisée
2751 pour une ligne de requête HTTP en <var>octets</var>.</p>
2753 <p>La directive <directive>LimitRequestLine</directive> permet à
2754 l'administrateur du serveur de définir la taille
2755 maximale autorisée d'une ligne de requête HTTP client. Comme une
2756 requête comporte une méthode HTTP, un URI, et une version de
2757 protocole, la directive <directive>LimitRequestLine</directive>
2758 impose une restriction sur la longueur maximale autorisée pour un
2759 URI dans une requête au niveau du serveur. Pour un serveur, cette
2760 valeur doit être suffisamment grande pour référencer les noms de
2761 toutes ses ressources, y compris toutes informations pouvant être
2762 ajoutées dans la partie requête d'une méthode <code>GET</code>.</p>
2764 <p>L'administrateur du serveur peut utiliser cette directive pour
2765 contrôler plus efficacement les comportements anormaux des requêtes
2766 des clients, ce qui lui permettra de prévenir certaines formes
2767 d'attaques par déni de service.</p>
2769 <p>Par exemple :</p>
2772 LimitRequestLine 4094
2775 <note>Dans des conditions normales, la valeur par défaut de cette
2776 directive ne doit pas être modifiée. En outre, vous ne
2777 pouvez pas spécifier une valeur supérieure à 8190 sans modifier le
2778 code source et recompiler.</note>
2780 <note type="warning"><title>Avertissement</title>
2781 <p>Dans le cas des serveurs virtuels à base de noms, la valeur de
2782 cette directive est extraite du serveur virtuel par défaut (le
2783 premier de la liste) pour lequel la paire adresse IP/port
2784 correspond le mieux.</p>
2788 </directivesynopsis>
2791 <name>LimitXMLRequestBody</name>
2792 <description>Définit la taille maximale du corps d'une requête au format
2794 <syntax>LimitXMLRequestBody <var>octets</var></syntax>
2795 <default>LimitXMLRequestBody 1000000</default>
2796 <contextlist><context>server config</context><context>virtual
2798 <context>directory</context><context>.htaccess</context></contextlist>
2799 <override>All</override>
2802 <p>Taille maximale (en octets) du corps d'une requête au format XML.
2803 Une valeur de <code>0</code> signifie qu'aucune limite n'est
2809 LimitXMLRequestBody 0
2813 </directivesynopsis>
2815 <directivesynopsis type="section">
2816 <name>Location</name>
2817 <description>N'applique les directives contenues qu'aux URLs
2818 spécifiées</description>
2819 <syntax><Location
2820 <var>chemin URL</var>|<var>URL</var>> ... </Location></syntax>
2821 <contextlist><context>server config</context><context>virtual
2826 <p>La directive <directive type="section">Location</directive>
2827 limite la portée des directives contenues aux URLs définies par
2828 l'argument URL. Elle est similaire à la directive <directive
2829 type="section" module="core">Directory</directive>, et marque le
2830 début d'une section qui se termine par une directive
2831 <code></Location></code>. Les sections <directive
2832 type="section">Location</directive> sont traitées selon l'ordre dans
2833 lequel elles apparaissent dans le fichier de configuration, mais
2834 après les sections <directive
2835 type="section" module="core">Directory</directive> et la lecture des
2836 fichiers <code>.htaccess</code>, et après les sections <directive
2837 type="section" module="core">Files</directive>.</p>
2839 <p>Les sections <directive type="section">Location</directive>
2840 agissent complètement en dehors du système de fichiers. Ceci a de
2841 nombreuses conséquences. Parmi les plus importantes, on ne doit pas
2842 utiliser les sections <directive type="section">Location</directive>
2843 pour contrôler l'accès aux répertoires du système de fichiers. Comme
2844 plusieurs URLs peuvent correspondre au même répertoire du système de
2845 fichiers, un tel contrôle d'accès pourrait être contourné.</p>
2847 <p>Les directives que contient cette section seront appliquées aux
2848 requêtes si la partie chemin de l'URL satisfait à l'un au moins de
2849 ces critères :
2852 <li>Le chemin spécifié correspond exactement à la partie chemin de
2855 <li>Le chemin spécifié, qui se termine par un slash, est un
2856 préfixe de la partie chemin de l'URL (traité comme une racine du
2859 <li>Le chemin spécifié, si on lui ajoute un slash de fin, est un
2860 préfixe de la partie chemin de l'URL (aussi traité comme une racine du
2865 Dans l'exemple ci-dessous, où aucun slash de fin n'est utilisé, les
2866 directives contenues dans la section s'appliqueront à /private1,
2867 /private1/ et /private1/file.txt, mais pas à /private1other.
2870 <Location /private1>
2874 De même, dans l'exemple ci-dessous, où l'on utilise un slash de fin, les
2875 directives contenues dans la section s'appliqueront à /private2/ et
2876 à /private2/file.txt, mais pas à /private2other.
2879 <Location /private2<em>/</em>>
2883 <note><title>Quand utiliser la section <directive
2884 type="section">Location</directive></title>
2886 <p>Vous pouvez utiliser une section <directive
2887 type="section">Location</directive> pour appliquer des directives à
2888 des contenus situés en dehors du système de fichiers. Pour les
2889 contenus situés à l'intérieur du système de fichiers, utilisez
2890 plutôt les sections <directive
2891 type="section" module="core">Directory</directive> et <directive
2892 type="section" module="core">Files</directive>. <code><Location
2893 /></code> constitue une exception et permet d'appliquer aisément
2894 une configuration à l'ensemble du serveur.</p>
2897 <p>Pour toutes les requêtes originales (non mandatées), l'argument
2898 URL est un chemin d'URL de la forme
2899 <code>/chemin/</code>. <em>Aucun protocole, nom d'hôte, port, ou chaîne
2900 de requête ne doivent apparaître.</em> Pour les requêtes mandatées, l'URL
2901 spécifiée doit être de la forme
2902 <code>protocole://nom_serveur/chemin</code>, et vous devez inclure
2903 le préfixe.</p>
2905 <p>L'URL peut contenir des caractères génériques. Dans une chaîne
2906 avec caractères génériques, <code>?</code> correspond à un caractère
2907 quelconque, et <code>*</code> à toute chaîne de caractères. Les
2908 caractères génériques ne peuvent pas remplacer un / dans le chemin
2911 <p>On peut aussi utiliser les <glossary ref="regex">Expressions
2912 rationnelles</glossary>, moyennant l'addition d'un caractère
2913 <code>~</code>. Par exemple :</p>
2916 <Location ~ "/(extra|special)/data">
2919 <p>concernerait les URLs contenant les sous-chaîne
2920 <code>/extra/data</code> ou <code>/special/data</code>. La directive
2921 <directive type="section" module="core">LocationMatch</directive>
2922 présente un comportement identique à la version avec expressions
2923 rationnelles de la directive <directive
2924 type="section">Location</directive>, et son utilisation est
2925 préférable à l'utilisation de cette dernière pour la simple raison
2926 qu'il est difficile de distinguer <code>~</code> de <code>-</code>
2927 dans la plupart des fontes.</p>
2929 <p>La directive <directive type="section">Location</directive>
2930 s'utilise principalement avec la directive <directive
2931 module="core">SetHandler</directive>. Par exemple, pour activer les
2932 requêtes d'état, mais ne les autoriser que depuis des navigateurs
2933 appartenant au domaine <code>example.com</code>, vous pouvez
2937 <Location /status><br />
2939 SetHandler server-status<br />
2940 Require host example.com<br />
2945 <note><title>Note à propos du slash (/)</title>
2946 <p>La signification du caractère slash dépend de l'endroit où il
2947 se trouve dans l'URL. Les utilisateurs peuvent être habitués à
2948 son comportement dans le système de fichiers où plusieurs slashes
2949 successifs sont souvent réduits à un slash unique (en d'autres
2950 termes, <code>/home///foo</code> est identique à
2951 <code>/home/foo</code>). Dans l'espace de nommage des URLs, ce
2952 n'est cependant pas toujours le cas. Pour la directive <directive
2953 type="section" module="core">LocationMatch</directive> et la
2954 version avec expressions rationnelles de la directive <directive
2955 type="section">Location</directive>, vous devez spécifier
2956 explicitement les slashes multiples si telle est votre
2959 <p>Par exemple, <code><LocationMatch ^/abc></code> va
2960 correspondre à l'URL <code>/abc</code> mais pas à l'URL <code>
2961 //abc</code>. La directive <directive type="section"
2962 >Location</directive> sans expression rationnelle se comporte de
2963 la même manière lorsqu'elle est utilisée pour des requêtes
2964 mandatées. Par contre, lorsque la directive <directive
2965 type="section">Location</directive> sans expression rationnelle
2966 est utilisée pour des requêtes non mandatées, elle fera
2967 correspondre implicitement les slashes multiples à des slashes
2968 uniques. Par exemple, si vous spécifiez <code><Location
2969 /abc/def></code>, une requête de la forme
2970 <code>/abc//def</code> correspondra.</p>
2973 <seealso><a href="../sections.html">Comment fonctionnent les sections
2974 <Directory>, <Location> et <Files></a> pour une
2975 explication de la manière dont ces différentes sections se combinent
2976 entre elles à la réception d'une requête.</seealso>
2977 </directivesynopsis>
2979 <directivesynopsis type="section">
2980 <name>LocationMatch</name>
2981 <description>N'applique les directives contenues qu'aux URLs
2982 correspondant à une expression rationnelle</description>
2983 <syntax><LocationMatch
2984 <var>regex</var>> ... </LocationMatch></syntax>
2985 <contextlist><context>server config</context><context>virtual
2990 <p>La directive <directive type="section">LocationMatch</directive>
2991 limite la portée des directives contenues à l'URL spécifiée, de
2992 manière identique à la directive <directive module="core"
2993 type="section">Location</directive>. Mais son argument permettant de
2994 spécifier les URLs concernées est une <glossary
2995 ref="regex">expression rationnelle</glossary> au lieu d'une simple
2996 chaîne de caractères. Par exemple :</p>
2999 <LocationMatch "/(extra|special)/data">
3002 <p>correspondrait à toute URL contenant les sous-chaînes
3003 <code>/extra/data</code> ou <code>/special/data</code>.</p>
3005 <seealso><a href="../sections.html">Comment fonctionnent les sections
3006 <Directory>, <Location> et <Files></a> pour une
3007 explication de la manière dont ces différentes sections se combinent
3008 entre elles à la réception d'une requête.</seealso>
3009 </directivesynopsis>
3012 <name>LogLevel</name>
3013 <description>Contrôle la verbosité du journal des erreurs</description>
3014 <syntax>LogLevel [<var>module</var>:]<var>niveau</var>
3015 [<var>module</var>:<var>niveau</var>] ...
3017 <default>LogLevel warn</default>
3018 <contextlist><context>server config</context><context>virtual
3019 host</context><context>directory</context>
3021 <compatibility>La configuration du niveau de journalisation par module
3022 et par répertoire est disponible depuis la version 2.3.6 du serveur HTTP
3023 Apache</compatibility>
3025 <p>La directive <directive>LogLevel</directive> permet d'ajuster la
3026 verbosité des messages enregistrés dans les journaux d'erreur (voir
3027 la directive <directive module="core">ErrorLog</directive>
3028 directive). Les <var>niveau</var>x disponibles sont présentés
3029 ci-après, par ordre de criticité décroissante :</p>
3032 <columnspec><column width=".2"/><column width=".3"/><column width=".5"/>
3035 <th><strong>Niveau</strong> </th>
3037 <th><strong>Description</strong> </th>
3039 <th><strong>Exemple</strong> </th>
3043 <td><code>emerg</code> </td>
3045 <td>Urgences - le système est inutilisable.</td>
3047 <td>"Child cannot open lock file. Exiting"</td>
3051 <td><code>alert</code> </td>
3053 <td>Des mesures doivent être prises immédiatement.</td>
3055 <td>"getpwuid: couldn't determine user name from uid"</td>
3059 <td><code>crit</code> </td>
3061 <td>Conditions critiques.</td>
3063 <td>"socket: Failed to get a socket, exiting child"</td>
3067 <td><code>error</code> </td>
3071 <td>"Premature end of script headers"</td>
3075 <td><code>warn</code> </td>
3077 <td>Avertissements.</td>
3079 <td>"child process 1234 did not exit, sending another
3084 <td><code>notice</code> </td>
3086 <td>Evènement important mais normal.</td>
3088 <td>"httpd: caught SIGBUS, attempting to dump core in
3093 <td><code>info</code> </td>
3095 <td>Informations.</td>
3097 <td>"Server seems busy, (you may need to increase
3098 StartServers, or Min/MaxSpareServers)..."</td>
3102 <td><code>debug</code> </td>
3104 <td>Messages de débogage.</td>
3106 <td>"Opening config file ..."</td>
3109 <td><code>trace1</code> </td>
3111 <td>Messages de traces</td>
3113 <td>"proxy: FTP: control connection complete"</td>
3116 <td><code>trace2</code> </td>
3118 <td>Messages de traces</td>
3120 <td>"proxy: CONNECT: sending the CONNECT request to the remote proxy"</td>
3123 <td><code>trace3</code> </td>
3125 <td>Messages de traces</td>
3127 <td>"openssl: Handshake: start"</td>
3130 <td><code>trace4</code> </td>
3132 <td>Messages de traces</td>
3134 <td>"read from buffered SSL brigade, mode 0, 17 bytes"</td>
3137 <td><code>trace5</code> </td>
3139 <td>Messages de traces</td>
3141 <td>"map lookup FAILED: map=rewritemap key=keyname"</td>
3144 <td><code>trace6</code> </td>
3146 <td>Messages de traces</td>
3148 <td>"cache lookup FAILED, forcing new map lookup"</td>
3151 <td><code>trace7</code> </td>
3153 <td>Messages de traces, enregistrement d'une grande quantité de
3156 <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3159 <td><code>trace8</code> </td>
3161 <td>Messages de traces, enregistrement d'une grande quantité de
3164 <td>"| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"</td>
3168 <p>Lorsqu'un niveau particulier est spécifié, les messages de tous
3169 les autres niveaux de criticité supérieure seront aussi enregistrés.
3170 <em>Par exemple</em>, si <code>LogLevel info</code> est spécifié,
3171 les messages de niveaux <code>notice</code> et <code>warn</code>
3172 seront aussi émis.</p>
3174 <p>Il est recommandé d'utiliser un niveau <code>crit</code> ou
3175 inférieur.</p>
3177 <p>Par exemple :</p>
3183 <note><title>Note</title>
3184 <p>Si la journalisation s'effectue directement dans un fichier,
3185 les messages de niveau <code>notice</code> ne peuvent pas être
3186 supprimés et sont donc toujours journalisés. Cependant, ceci ne
3187 s'applique pas lorsque la journalisation s'effectue vers
3188 <code>syslog</code>.</p>
3191 <p>Spécifier un niveau sans nom de module va attribuer ce niveau à
3192 tous les modules. Spécifier un niveau avec nom de module va
3193 attribuer ce niveau à ce module seulement. Il est possible de
3194 spécifier un module par le nom de son fichier source ou par son
3195 identificateur, avec ou sans le suffixe <code>_module</code>. Les
3196 trois spécifications suivantes sont donc équivalentes :</p>
3199 LogLevel info ssl:warn<br />
3200 LogLevel info mod_ssl.c:warn<br />
3201 LogLevel info ssl_module:warn<br />
3204 <p>Il est aussi possible d'attribuer un niveau de journalisation par
3205 répertoire :</p>
3209 <Directory /usr/local/apache/htdocs/app><br />
3210 LogLevel debug<br />
3215 La configuration du niveau de journalisation par répertoire
3216 n'affecte que les messages journalisés après l'interprétation de
3217 la requête et qui sont associés à cette dernière. Les messages
3218 de journalisation associés à la connexion ou au serveur ne sont
3219 pas affectés.
3222 </directivesynopsis>
3225 <name>MaxKeepAliveRequests</name>
3226 <description>Nombre de requêtes permises pour une connexion
3227 persistante</description>
3228 <syntax>MaxKeepAliveRequests <var>nombre</var></syntax>
3229 <default>MaxKeepAliveRequests 100</default>
3230 <contextlist><context>server config</context><context>virtual
3235 <p>La directive <directive>MaxKeepAliveRequests</directive> permet
3236 de limiter le nombre de requêtes autorisées par connexion lorsque
3237 <directive module="core" >KeepAlive</directive> est à "on". Si sa
3238 valeur est <code>0</code>, le nombre de requêtes autorisées est
3239 illimité. Il est recommandé de définir une valeur assez haute pour
3240 des performances du serveur maximales.</p>
3242 <p>Par exemple :</p>
3245 MaxKeepAliveRequests 500
3248 </directivesynopsis>
3251 <name>MaxRanges</name>
3252 <description>Nombre de segments de données autorisé avant le renvoi de
3253 l'intégralité de la ressource</description>
3254 <syntax>MaxRanges default | unlimited | none | <var>nombre de segments</var></syntax>
3255 <default>MaxRanges 200</default>
3256 <contextlist><context>server config</context><context>virtual host</context>
3257 <context>directory</context>
3259 <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3260 Apache</compatibility>
3263 <p>La directive <directive>MaxRanges</directive> permet de limiter
3264 le nombre de segments de données que le serveur va renvoyer au
3265 client. Si un nombre de segments plus important est demandé, la
3266 ressource sera renvoyée dans son intégralité.</p>
3269 <dt><strong>default</strong></dt>
3270 <dd>Limite le nombre de segments de données à 200 (valeur par
3271 défaut définie à la compilation).</dd>
3273 <dt><strong>none</strong></dt>
3274 <dd>Les en-têtes Range sont ignorés.</dd>
3276 <dt><strong>unlimited</strong></dt>
3277 <dd>Le nombre de segments de données est illimité.</dd>
3279 <dt><var>nombre de segments</var></dt>
3280 <dd>Un nombre positif représentera la nombre de segments de
3281 données maximal que le serveur renverra au client.</dd>
3284 </directivesynopsis>
3287 <name>MaxRangeOverlaps</name>
3288 <description>Nombre de chevauchements de segments de données autorisé
3289 (par exemple <code>100-200,150-300</code>) avant le renvoi de la
3290 ressource complète</description>
3291 <syntax>MaxRangeOverlaps default | unlimited | none | <var>nombre de
3292 chevauchements</var></syntax>
3293 <default>MaxRangeOverlaps 20</default>
3294 <contextlist><context>server config</context><context>virtual host</context>
3295 <context>directory</context>
3297 <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3298 Apache</compatibility>
3301 <p>La directive <directive>MaxRangeOverlaps</directive> permet
3302 de limiter le nombre de chevauchements de segments de données HTTP
3303 autorisé par le serveur. Si le nombre de
3304 chevauchements de segments demandé est supérieur au nombre maximal
3305 autorisé, la ressource sera renvoyée dans son intégralité.</p>
3308 <dt><strong>default</strong></dt>
3309 <dd>Limite le nombre de chevauchements de segments à la valeur
3310 par défaut 20 définie à la compilation.</dd>
3312 <dt><strong>none</strong></dt>
3313 <dd>Aucun chevauchement de segment n'est autorisé.</dd>
3315 <dt><strong>unlimited</strong></dt>
3316 <dd>Le nombre de chevauchements de segments est illimité.</dd>
3318 <dt><var>number-of-ranges</var></dt>
3319 <dd>Un nombre positif représente le nombre maximal de
3320 chevauchements de segments autorisé par le serveur.</dd>
3323 </directivesynopsis>
3326 <name>MaxRangeReversals</name>
3327 <description>Nombre d'inversions d'ordre autorisé dans la spécification des
3328 segments de données (par exemple <code>100-200,50-70</code>) avant le renvoi de la
3329 ressource complète</description>
3330 <syntax>MaxRangeReversals default | unlimited | none | <var>nombre
3331 d'inversions</var></syntax>
3332 <default>MaxRangeReversals 20</default>
3333 <contextlist><context>server config</context><context>virtual host</context>
3334 <context>directory</context>
3336 <compatibility>Disponible depuis la version 2.3.15 du serveur HTTP
3337 Apache</compatibility>
3340 <p>La directive <directive>MaxRangeReversals</directive> permet
3341 de limiter le nombre d'inversions d'ordre dans la spécification
3342 des segments de données HTTP
3343 autorisé par le serveur. Si le nombre
3344 d'inversions demandé est supérieur au nombre maximal
3345 autorisé, la ressource sera renvoyée dans son intégralité.</p>
3348 <dt><strong>default</strong></dt>
3349 <dd>Limite le nombre d'inversions à la valeur
3350 par défaut 20 définie à la compilation.</dd>
3352 <dt><strong>none</strong></dt>
3353 <dd>Aucune inversion n'est autorisée.</dd>
3355 <dt><strong>unlimited</strong></dt>
3356 <dd>Le nombre d'inversions est illimité.</dd>
3358 <dt><var>number-of-ranges</var></dt>
3359 <dd>Un nombre positif représente le nombre maximal
3360 d'inversions autorisé par le serveur.</dd>
3363 </directivesynopsis>
3367 <description>Définit les mécanismes de mutex et le repertoire du fichier
3368 verrou pour tous les mutex ou seulement les mutex spécifiés</description>
3369 <syntax>Mutex <var>mécanisme</var> [default|<var>nom-mutex</var>] ... [OmitPID]</syntax>
3370 <default>Mutex default</default>
3371 <contextlist><context>server config</context></contextlist>
3372 <compatibility>Disponible depuis la version 2.3.4 du serveur HTTP Apache</compatibility>
3375 <p>La directive <directive>Mutex</directive> permet de définir le
3376 mécanisme de mutex, et éventuellement le répertoire du fichier
3377 verrou que les modules et httpd utilisent pour sérialiser l'accès aux
3378 ressources. Spécifiez <code>default</code> comme premier argument
3379 pour modifier la configuration de tous les mutex ; spécifiez un nom
3380 de mutex (voir la table ci-dessous) comme premier argument pour
3381 ne modifier que la configuration de ce mutex.</p>
3383 <p>La directive <directive>Mutex</directive> est typiquement
3384 utilisée dans les situations exceptionnelles suivantes :</p>
3387 <li>choix d'un autre mécanisme de mutex lorsque le mécanisme par
3388 défaut sélectionné par <glossary>APR</glossary> présente un
3389 problème de fonctionnement ou de performances.</li>
3391 <li>choix d'un autre répertoire utilisé par les mutex à base de
3392 fichier lorsque le répertoire par défaut ne supporte pas le
3396 <note><title>Modules supportés</title>
3397 <p>Cette directive ne configure que les mutex qui ont été
3398 enregistrés avec le serveur de base via l'API
3399 <code>ap_mutex_register()</code>. Tous les modules fournis avec
3400 httpd supportent la directive <directive>Mutex</directive>, mais il
3401 n'en sera pas forcément de même pour les modules tiers.
3402 Reportez-vous à la documentation du module tiers considéré afin de
3403 déterminer le(s) nom(s) de mutex qui pourront être définis si la
3404 directive est supportée.</p>
3409 <p>Les <em>mécanismes</em> de mutex disponibles sont les suivants :</p>
3411 <li><code>default | yes</code>
3412 <p>C'est l'implémentation du verrouillage par défaut, telle
3413 qu'elle est définie par <glossary>APR</glossary>. On peut
3414 afficher l'implémentation du verrouillage par défaut via la
3415 commande <program>httpd</program> avec l'option <code>-V</code>.</p></li>
3417 <li><code>none | no</code>
3418 <p>Le mutex est désactivé, et cette valeur n'est permise pour un
3419 mutex que si le module indique qu'il s'agit d'un choix valide.
3420 Consultez la documentation du module pour plus d'informations.</p></li>
3422 <li><code>posixsem</code>
3423 <p>Une variante de mutex basée sur un sémaphore Posix.</p>
3425 <note type="warning"><title>Avertissement</title>
3426 <p>La propriété du sémaphore n'est pas restituée si un thread du
3427 processus gérant le mutex provoque une erreur de segmentation,
3428 ce qui provoquera un blocage du serveur web.</p>
3432 <li><code>sysvsem</code>
3433 <p>Une variante de mutex basée sur un sémaphore IPC SystemV.</p>
3435 <note type="warning"><title>Avertissement</title>
3436 <p>Il peut arriver que les sémaphores SysV soient conservés si le
3437 processus se crashe avant que le sémaphore ne soit supprimé.</p>
3440 <note type="warning"><title>Sécurité</title>
3441 <p>L'API des sémaphores permet les attaques par déni de service
3442 par tout programme CGI s'exécutant sous le même uid que le
3443 serveur web (autrement dit tous les programmes CGI, à moins que
3444 vous n'utilisiez un programme du style <program>suexec</program>
3445 ou <code>cgiwrapper</code>).</p>
3449 <li><code>sem</code>
3450 <p>Sélection de la "meilleure" implémentation des sémaphores
3451 disponible ; le choix s'effectue entre les sémaphores posix et
3452 IPC SystemV, dans cet ordre.</p></li>
3454 <li><code>pthread</code>
3455 <p>Une variante de mutex à base de mutex de thread Posix
3456 inter-processus.</p>
3458 <note type="warning"><title>Avertissement</title>
3459 <p>Sur la plupart des systèmes, si un processus enfant se
3460 termine anormalement alors qu'il détenait un mutex qui utilise
3461 cette implémentation, le serveur va se bloquer et cesser de
3462 répondre aux requêtes. Dans ce cas, un redémarrage manuel est
3463 nécessaire pour récupérer le mutex.</p>
3464 <p>Solaris constitue une exception notable, en ceci qu'il fournit
3465 un mécanisme qui permet en général de récupérer le mutex après
3466 l'arrêt anormal d'un processus enfant qui détenait le mutex.</p>
3467 <p>Si votre système implémente la fonction
3468 <code>pthread_mutexattr_setrobust_np()</code>, vous devriez
3469 pouvoir utiliser l'option <code>pthread</code> sans problème.</p>
3473 <li><code>fcntl:/chemin/vers/mutex</code>
3474 <p>Une variante de mutex utilisant un fichier verrou physique et
3475 la fonction <code>fcntl()</code>.</p>
3477 <note type="warning"><title>Avertissement</title>
3478 <p>Lorsqu'on utilise plusieurs mutex basés sur ce mécanisme dans
3479 un environnement multi-processus, multi-thread, des erreurs de
3480 blocage (EDEADLK) peuvent être rapportées pour des opérations de
3481 mutex valides si la fonction <code>fcntl()</code> ne gère pas
3482 les threads, comme sous Solaris.</p>
3486 <li><code>flock:/chemin/vers/mutex</code>
3487 <p>Méthode similaire à <code>fcntl:/chemin/vers/mutex</code>,
3488 mais c'est la fonction <code>flock()</code> qui est utilisée
3489 pour gérer le verrouillage par fichier.</p></li>
3491 <li><code>file:/chemin/vers/mutex</code>
3492 <p>Sélection de la "meilleure" implémentation de verrouillage
3493 par fichier disponible ; le choix s'effectue entre
3494 <code>fcntl</code> et <code>flock</code>, dans cet ordre.</p></li>
3497 <p>La plupart des mécanismes ne sont disponibles que sur les
3498 plate-formes où ces dernières et <glossary>APR</glossary> les
3499 supportent. Les mécanismes qui ne sont pas disponibles sur toutes
3500 les plate-formes sont <em>posixsem</em>,
3501 <em>sysvsem</em>, <em>sem</em>, <em>pthread</em>, <em>fcntl</em>,
3502 <em>flock</em>, et <em>file</em>.</p>
3504 <p>Avec les mécanismes à base de fichier <em>fcntl</em> et
3505 <em>flock</em>, le chemin, s'il est fourni, est un répertoire dans
3506 lequel le fichier verrou sera créé. Le répertoire par défaut est le
3507 répertoire httpd défini par la directive <directive
3508 module="core">ServerRoot</directive>. Utilisez toujours un système
3509 de fichiers local sur disque pour <code>/chemin/vers/mutex</code> et
3510 jamais un répertoire se trouvant dans un système de fichiers NFS ou
3511 AFS. Le nom de base du fichier se composera du type de mutex, d'une
3512 chaîne optionnelle correspondant à l'instance et fournie par le
3513 module ; et, sauf si le mot-clé <code>OmitPID</code> a été spécifié,
3514 l'identificateur du processus parent httpd sera ajouté afin de
3515 rendre le nom du fichier unique, évitant ainsi tout conflit lorsque
3516 plusieurs instances d'httpd partagent le même répertoire de
3517 verrouillage. Par exemple, si le nom de mutex est
3518 <code>mpm-accept</code>, et si le répertoire de verrouillage est
3519 <code>/var/httpd/locks</code>, le nom du fichier verrou pour
3520 l'instance httpd dont le processus parent a pour identifiant 12345
3521 sera <code>/var/httpd/locks/mpm-accept.12345</code>.</p>
3523 <note type="warning"><title>Sécurité</title>
3524 <p>Il est conseillé d'<em>éviter</em> de placer les fichiers mutex
3525 dans un répertoire où tout le monde peut écrire comme
3526 <code>/var/tmp</code>, car quelqu'un pourrait initier une attaque
3527 par déni de service et empêcher le serveur de démarrer en créant un
3528 fichier verrou possédant un nom identique à celui que le serveur va
3529 tenter de créer.</p>
3532 <p>La table suivante décrit les noms de mutex utilisés par httpd et
3533 ses modules associés.</p>
3535 <table border="1" style="zebra">
3539 <th>Ressource protégée</th>
3542 <td><code>mpm-accept</code></td>
3543 <td>modules MPM <module>prefork</module> et <module>worker</module></td>
3544 <td>connexions entrantes, afin d'éviter le problème de
3545 l'afflux de requêtes ; pour plus d'informations, voir la
3547 href="../misc/perf-tuning.html">Amélioration des
3548 performances</a></td>
3551 <td><code>authdigest-client</code></td>
3552 <td><module>mod_auth_digest</module></td>
3553 <td>liste de clients en mémoire partagée</td>
3556 <td><code>authdigest-opaque</code></td>
3557 <td><module>mod_auth_digest</module></td>
3558 <td>compteur en mémoire partagée</td>
3561 <td><code>ldap-cache</code></td>
3562 <td><module>mod_ldap</module></td>
3563 <td>cache de résultat de recherche LDAP</td>
3566 <td><code>rewrite-map</code></td>
3567 <td><module>mod_rewrite</module></td>
3568 <td>communication avec des programmes externes
3569 d'associations de valeurs, afin d'éviter les interférences
3570 d'entrées/sorties entre plusieurs requêtes</td>
3573 <td><code>ssl-cache</code></td>
3574 <td><module>mod_ssl</module></td>
3575 <td>cache de session SSL</td>
3578 <td><code>ssl-stapling</code></td>
3579 <td><module>mod_ssl</module></td>
3580 <td>cache de l'étiquetage OCSP ("OCSP stapling")</td>
3583 <td><code>watchdog-callback</code></td>
3584 <td><module>mod_watchdog</module></td>
3585 <td>fonction de rappel d'un module client particulier</td>
3589 <p>Le mot-clé <code>OmitPID</code> permet d'empêcher l'addition de
3590 l'identifiant du processus httpd parent au nom du fichier verrou.</p>
3593 <p>Dans l'exemple suivant, le mécanisme de mutex pour le mutex
3594 mpm-accept est modifié pour passer du mécanisme par défaut au
3595 mécanisme <code>fcntl</code>, avec le fichier verrou associé créé
3596 dans le répertoire <code>/var/httpd/locks</code>. Le mécanisme de
3597 mutex par défaut pour tous les autres mutex deviendra
3598 <code>sysvsem</code>.</p>
3601 Mutex sysvsem default<br />
3602 Mutex fcntl:/var/httpd/locks mpm-accept
3605 </directivesynopsis>
3608 <name>NameVirtualHost</name>
3609 <description>OBSOLETE : Définit une adresse IP pour les serveurs virtuels à base de
3611 <syntax>NameVirtualHost <var>adresse</var>[:<var>port</var>]</syntax>
3612 <contextlist><context>server config</context></contextlist>
3616 <p>Avant la version 2.3.11, il était nécessaire de définir une
3617 directive <directive>NameVirtualHost</directive> pour indiquer au
3618 serveur qu'une paire adresse IP/port particulière pouvait être
3619 utilisée comme serveur virtuel à base de nom. Depuis la version
3620 2.3.11, chaque fois qu'une paire adresse IP/port est utilisée dans
3621 plusieurs serveurs virtuels, l'hébergement virtuel à base de nom est
3622 automatiquement activé pour cette adresse.</p>
3624 <p>Cette directive n'a actuellement plus aucun effet.</p>
3627 <seealso><a href="../vhosts/">Documentation sur les serveurs
3628 virtuels</a></seealso>
3630 </directivesynopsis>
3633 <name>Options</name>
3634 <description>Définit les fonctionnalités disponibles pour un répertoire
3635 particulier</description>
3637 [+|-]<var>option</var> [[+|-]<var>option</var>] ...</syntax>
3638 <default>Options FollowSymlinks</default>
3639 <contextlist><context>server config</context><context>virtual
3641 <context>directory</context><context>.htaccess</context>
3643 <override>Options</override>
3644 <compatibility>Avec la version 2.3.11, la valeur par défaut passe de All
3645 à FollowSymlinks</compatibility>
3648 <p>La directive <directive>Options</directive> permet de définir
3649 les fonctionnalités de serveur disponibles pour un répertoire
3652 <p><var>option</var> peut être défini à <code>None</code>, auquel
3653 cas aucune fonctionnalité spécifique n'est activée, ou comprendre
3654 une ou plusieurs des options suivantes :</p>
3657 <dt><code>All</code></dt>
3659 <dd>Toutes les options excepté <code>MultiViews</code>.</dd>
3661 <dt><code>ExecCGI</code></dt>
3663 <dd>L'exécution de scripts CGI à l'aide du module
3664 <module>mod_cgi</module> est permise.</dd>
3666 <dt><code>FollowSymLinks</code></dt>
3670 Le serveur va suivre les liens symboliques dans le répertoire
3671 concerné. Il s'agit de la valeur par défaut.
3673 <p>Bien que le serveur suive les liens symboliques, il ne modifie
3674 <em>pas</em> le nom de chemin concerné défini par la section
3675 <directive type="section"
3676 module="core">Directory</directive>.</p>
3677 <p>Notez aussi que cette option <strong>est ignorée</strong> si
3678 elle est définie dans une section <directive type="section"
3679 module="core">Location</directive>.</p>
3680 <p>Le fait d'omettre cette option ne doit pas être considéré comme
3681 une mesure de sécurité efficace, car il existe toujours une
3682 situation de compétition (race condition) entre l'instant où l'on
3683 vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où
3684 l'on utilise effectivement ce chemin.</p>
3687 <dt><code>Includes</code></dt>
3690 Les inclusions côté serveur (SSI) à l'aide du module
3691 <module>mod_include</module> sont autorisées.</dd>
3693 <dt><code>IncludesNOEXEC</code></dt>
3697 Les inclusions côté serveur (SSI) sont permises, mais <code>#exec
3698 cmd</code> et <code>#exec cgi</code> sont désactivés.
3699 L'utilisation de <code>#include virtual</code> pour les scripts
3700 CGI est cependant toujours possible depuis des répertoires
3701 définis par <directive
3702 module="mod_alias">ScriptAlias</directive>.</dd>
3704 <dt><code>Indexes</code></dt>
3707 Si une URL requise correspond au répertoire concerné, et si aucun
3708 <directive module="mod_dir">DirectoryIndex</directive> (<em>par
3709 exemple</em> <code>index.html</code>) n'est défini pour ce
3710 répertoire, le module <module>mod_autoindex</module> va renvoyer
3711 un listing formaté du répertoire.</dd>
3713 <dt><code>MultiViews</code></dt>
3716 Les vues multiples ("multiviews") à <a
3717 href="../content-negotiation.html">contenu négocié</a> à l'aide du
3718 module <module>mod_negotiation</module> sont autorisées.
3719 <note><title>Note</title> <p>Cette option est ignorée si elle est
3720 définie en tout autre endroit qu'une section <directive
3721 module="core" type="section">Directory</directive>, car
3722 <module>mod_negotiation</module> a besoin de ressources réelles
3723 pour effectuer ses comparaisons et ses évaluations.</p></note>
3727 <dt><code>SymLinksIfOwnerMatch</code></dt>
3729 <dd>Le serveur ne suivra que les liens symboliques qui renvoient
3730 vers un fichier ou un répertoire dont le propriétaire est le même
3733 <note><title>Note</title> <p>Cette option est ignorée si elle est
3734 définie dans une section <directive module="core"
3735 type="section">Location</directive>.</p>
3736 <p>Le fait d'omettre cette option ne doit pas être considéré comme
3737 une mesure de sécurité efficace, car il existe toujours une
3738 situation de compétition (race condition) entre l'instant où l'on
3739 vérifie qu'un chemin n'est pas un lien symbolique, et l'instant où
3740 l'on utilise effectivement ce chemin.</p></note>
3744 <p>Normalement, si plusieurs directives
3745 <directive>Options</directive> peuvent s'appliquer à un répertoire,
3746 c'est la plus spécifique qui est utilisée et les autres sont
3747 ignorées ; les options ne sont pas fusionnées (voir <a
3748 href="../sections.html#mergin">comment les sections sont
3749 fusionnées</a>). Elles le sont cependant si <em>toutes</em> les
3750 options de la directive <directive>Options</directive> sont
3751 précédées d'un symbole <code>+</code> ou <code>-</code>. Toute
3752 option précédée d'un <code>+</code> est ajoutée à la liste des
3753 options courantes de manière forcée et toute option précédée d'un
3754 <code>-</code> est supprimée de la liste des options courantes de la
3755 même manière.</p>
3757 <note><title>Note</title>
3758 <p>Mélanger des <directive>Options</directive> avec <code>+</code>
3759 ou <code>-</code> avec des <directive>Options</directive> sans
3760 <code>+</code> ou <code>-</code> constitue une erreur de syntaxe, et
3761 la vérification de la syntaxe au cours du démarrage du serveur fera
3762 échouer ce dernier.</p>
3765 <p>Par exemple, sans aucun symbole <code>+</code> et <code>-</code>
3769 <Directory /web/docs><br />
3771 Options Indexes FollowSymLinks<br />
3773 </Directory><br />
3775 <Directory /web/docs/spec><br />
3777 Options Includes<br />
3782 <p>ici, seule l'option <code>Includes</code> sera prise en compte
3783 pour le répertoire <code>/web/docs/spec</code>. Par contre, si la
3784 seconde directive <directive>Options</directive> utilise les
3785 symboles <code>+</code> et <code>-</code> :</p>
3788 <Directory /web/docs><br />
3790 Options Indexes FollowSymLinks<br />
3792 </Directory><br />
3794 <Directory /web/docs/spec><br />
3796 Options +Includes -Indexes<br />
3801 <p>alors, les options <code>FollowSymLinks</code> et
3802 <code>Includes</code> seront prises en compte pour le répertoire
3803 <code>/web/docs/spec</code>.</p>
3805 <note><title>Note</title>
3806 <p>L'utilisation de <code>-IncludesNOEXEC</code> ou
3807 <code>-Includes</code> désactive complètement les inclusions côté
3808 serveur sans tenir compte des définitions précédentes.</p>
3811 <p>En l'absence de toute définition d'options, la valeur par défaut
3812 est <code>FollowSymlinks</code>.</p>
3814 </directivesynopsis>
3817 <name>Protocol</name>
3818 <description>Protocole pour une socket d'écoute</description>
3819 <syntax>Protocol <var>protocole</var></syntax>
3820 <contextlist><context>server config</context><context>virtual host</context></contextlist>
3821 <compatibility>Disponible depuis la version 2.1.5 d'Apache, mais
3822 seulement depuis la version 2.3.3 sous Windows.</compatibility>
3825 <p>Cette directive permet de spécifier le protocole utilisé pour une
3826 socket d'écoute particulière. Le protocole sert à déterminer quel
3827 module doit traiter une requête, et d'appliquer les optimisations
3828 spécifiques au protocole via la directive
3829 <directive>AcceptFilter</directive>.</p>
3831 <p>Vous ne devez définir le protocole que si vous travaillez avec
3832 des ports non standards ; dans le cas général, le protocole
3833 <code>http</code> est associé au port 80 et le protocole
3834 <code>https</code> au port 443.</p>
3836 <p>Par exemple, si vous travaillez avec le protocole
3837 <code>https</code> sur un port non standard, spécifiez le protocole
3838 de manière explicite :</p>
3844 <p>Vous pouvez aussi spécifier le protocole via la directive
3845 <directive module="mpm_common">Listen</directive>.</p>
3847 <seealso><directive>AcceptFilter</directive></seealso>
3848 <seealso><directive module="mpm_common">Listen</directive></seealso>
3849 </directivesynopsis>
3853 <name>RLimitCPU</name>
3854 <description>Limite le temps CPU alloué aux processus initiés par les
3855 processus enfants d'Apache httpd</description>
3856 <syntax>RLimitCPU <var>secondes</var>|max [<var>secondes</var>|max]</syntax>
3857 <default>Non défini ; utilise les valeurs par défaut du système
3858 d'exploitation</default>
3859 <contextlist><context>server config</context><context>virtual
3861 <context>directory</context><context>.htaccess</context></contextlist>
3862 <override>All</override>
3865 <p>Prend 1 ou 2 paramètres. Le premier definit la limite de
3866 consommation de ressources pour tous les processus, et le second la
3867 consommation de ressources maximale. Les deux paramètres peuvent
3868 contenir soit un nombre, soit <code>max</code> pour indiquer au
3869 serveur que la limite de consommation correspond à la valeur
3870 maximale autorisée par la configuration du système d'exploitation.
3871 Pour augmenter la consommation maximale de ressources, le serveur
3872 doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
3873 phase de démarrage.</p>
3875 <p>Cette directive s'applique aux processus initiés par les
3876 processus enfants d'Apache httpd qui traitent les requêtes, et non aux
3877 processus enfants eux-mêmes. Sont concernés les scripts CGI et les
3878 commandes exec des SSI, mais en aucun cas les processus initiés par
3879 le processus parent d'Apache httpd comme les journalisations redirigées
3880 vers un programme.</p>
3882 <p>Les limites de ressources CPU sont exprimées en secondes par
3885 <seealso><directive module="core">RLimitMEM</directive></seealso>
3886 <seealso><directive module="core">RLimitNPROC</directive></seealso>
3887 </directivesynopsis>
3890 <name>RLimitMEM</name>
3891 <description>Limite la mémoire allouée aux processus initiés par les
3892 processus enfants d'Apache httpd</description>
3893 <syntax>RLimitMEM <var>octets</var>|max [<var>octets</var>|max]</syntax>
3894 <default>Non défini ; utilise les valeurs par défaut du système
3895 d'exploitation</default>
3896 <contextlist><context>server config</context><context>virtual
3898 <context>directory</context><context>.htaccess</context></contextlist>
3899 <override>All</override>
3902 <p>Prend 1 ou 2 paramètres. Le premier definit la limite de
3903 consommation de ressources pour tous les processus, et le second la
3904 consommation de ressources maximale. Les deux paramètres peuvent
3905 contenir soit un nombre, soit <code>max</code> pour indiquer au
3906 serveur que la limite de consommation correspond à la valeur
3907 maximale autorisée par la configuration du système d'exploitation.
3908 Pour augmenter la consommation maximale de ressources, le serveur
3909 doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
3910 phase de démarrage.</p>
3912 <p>Cette directive s'applique aux processus initiés par les
3913 processus enfants d'Apache httpd qui traitent les requêtes, et non aux
3914 processus enfants eux-mêmes. Sont concernés les scripts CGI et les
3915 commandes exec des SSI, mais en aucun cas les processus initiés par
3916 le processus parent d'Apache httpd comme les journalisations redirigées
3917 vers un programme.</p>
3919 <p>Les limites de ressources mémoire sont exprimées en octets par
3922 <seealso><directive module="core">RLimitCPU</directive></seealso>
3923 <seealso><directive module="core">RLimitNPROC</directive></seealso>
3924 </directivesynopsis>
3927 <name>RLimitNPROC</name>
3928 <description>Limite le nombre de processus qui peuvent être initiés par
3929 les processus initiés par les processus enfants d'Apache httpd</description>
3930 <syntax>RLimitNPROC <var>nombre</var>|max [<var>nombre</var>|max]</syntax>
3931 <default>Unset; uses operating system defaults</default>
3932 <contextlist><context>server config</context><context>virtual
3934 <context>directory</context><context>.htaccess</context></contextlist>
3935 <override>All</override>
3938 <p>Prend 1 ou 2 paramètres. Le premier definit la limite de
3939 consommation de ressources pour tous les processus, et le second la
3940 consommation de ressources maximale. Les deux paramètres peuvent
3941 contenir soit un nombre, soit <code>max</code> pour indiquer au
3942 serveur que la limite de consommation correspond à la valeur
3943 maximale autorisée par la configuration du système d'exploitation.
3944 Pour augmenter la consommation maximale de ressources, le serveur
3945 doit s'exécuter en tant que <code>root</code>, ou se trouver dans sa
3946 phase de démarrage.</p>
3948 <p>Cette directive s'applique aux processus initiés par les
3949 processus enfants d'Apache httpd qui traitent les requêtes, et non aux
3950 processus enfants eux-mêmes. Sont concernés les scripts CGI et les
3951 commandes exec des SSI, mais en aucun cas les processus initiés par
3952 le processus parent d'Apache httpd comme les journalisations redirigées
3953 vers un programme.</p>
3955 <p>Les limites des processus contrôlent le nombre de processus par
3958 <note><title>Note</title>
3959 <p>Si les processus CGI s'exécutent sous le même
3960 utilisateur que celui du serveur web, cette
3961 directive va limiter le nombre de processus que le serveur
3962 pourra lui-même créer. La présence de messages
3963 <strong><code>cannot fork</code></strong> dans le journal des
3964 erreurs indiquera que la limite est atteinte.</p>
3967 <seealso><directive module="core">RLimitMEM</directive></seealso>
3968 <seealso><directive module="core">RLimitCPU</directive></seealso>
3969 </directivesynopsis>
3972 <name>ScriptInterpreterSource</name>
3973 <description>Permet de localiser l'interpréteur des scripts
3975 <syntax>ScriptInterpreterSource Registry|Registry-Strict|Script</syntax>
3976 <default>ScriptInterpreterSource Script</default>
3977 <contextlist><context>server config</context><context>virtual
3979 <context>directory</context><context>.htaccess</context></contextlist>
3980 <override>FileInfo</override>
3981 <compatibility>Win32 seulement ;
3982 l'option <code>Registry-Strict</code> est disponible dans les versions
3983 2.0 et supérieures du serveur HTTP Apache</compatibility>
3986 <p>Cette directive permet de contrôler la méthode qu'utilise Apache
3987 httpd pour trouver l'interpréteur destiné à exécuter les scripts CGI. La
3988 définition par défaut est <code>Script</code> : ceci indique à
3989 Apache httpd qu'il doit utiliser l'interpréteur précisé dans la ligne
3990 shebang du script (la première ligne, commençant par
3991 <code>#!</code>). Sur les systèmes Win32, cette ligne ressemble
3992 souvent à ceci :</p>
3995 #!C:/Perl/bin/perl.exe
3998 <p>ou simplement, dans le cas où <code>perl</code> est dans le
3999 <code>PATH</code> :</p>
4005 <p>Avec <code>ScriptInterpreterSource Registry</code>, Windows va
4006 effectuer une recherche dans l'arborescence
4007 <code>HKEY_CLASSES_ROOT</code> de la base de registre avec comme
4008 mot-clé l'extension du fichier contenant le script (par exemple
4009 <code>.pl</code>). C'est la commande définie par la sous-clé de
4010 registre <code>Shell\ExecCGI\Command</code> ou, si elle n'existe
4011 pas, la sous-clé <code>Shell\Open\Command</code> qui est utilisée
4012 pour ouvrir le fichier du script. Si ces clés de registre ne sont
4013 pas trouvées, Apache httpd utilise la méthode de l'option
4014 <code>Script</code>.</p>
4016 <note type="warning"><title>Sécurité</title>
4017 <p>Soyez prudent si vous utilisez <code>ScriptInterpreterSource
4018 Registry</code> avec des répertoires faisant l'objet d'un <directive
4019 module="mod_alias">ScriptAlias</directive>, car Apache httpd va essayer
4020 d'exécuter <strong>tous</strong> les fichiers contenus dans
4021 celui-ci. L'option <code>Registry</code> peut causer des appels de
4022 programmes non voulus sur des fichiers non destinés à être exécutés.
4023 Par exemple, la commande par défaut open sur les fichiers
4024 <code>.htm</code> sur la plupart des systèmes Windows va lancer
4025 Microsoft Internet Explorer ; ainsi, toute requête HTTP pour un
4026 fichier <code>.htm</code> situé dans le répertoire des scripts
4027 va lancer le navigateur en arrière-plan sur le serveur, ce qui a
4028 toutes les chances de crasher votre système dans les minutes qui
4032 <p>L'option <code>Registry-Strict</code>, apparue avec la version
4033 2.0 du serveur HTTP Apache,
4034 agit de manière identique à <code>Registry</code>, mais n'utilise
4035 que la sous-clé <code>Shell\ExecCGI\Command</code>. La présence de
4036 la clé <code>ExecCGI</code> n'étant pas systématique, Elle doit être
4037 définie manuellement dans le registre Windows et évite ainsi tout
4038 appel de programme accidentel sur votre système.</p>
4040 </directivesynopsis>
4043 <name>SeeRequestTail</name>
4044 <description>Détermine si mod_status affiche les 63 premiers caractères
4045 d'une requête ou les 63 derniers, en supposant que la requête
4046 elle-même possède plus de 63 caractères.</description>
4047 <syntax>SeeRequestTail On|Off</syntax>
4048 <default>SeeRequestTail Off</default>
4049 <contextlist><context>server config</context></contextlist>
4050 <compatibility>Disponible depuis la version 2.2.7
4051 d'Apache httpd.</compatibility>
4054 <p>Avec <code>ExtendedStatus On</code>, mod_status affiche la
4055 véritable requête en cours de traitement. Pour des raisons
4056 historiques, seuls 63 caractères de la requête sont réellement
4057 stockés à des fins d'affichage. Cette directive permet de déterminer
4058 si ce sont les 63 premiers caractères qui seront stockés (c'est le
4059 comportement par défaut),
4060 ou si ce sont les 63 derniers. Ceci ne s'applique bien entendu que
4061 si la taille de la requête est de 64 caractères ou plus.</p>
4063 <p>Si Apache httpd traite la requête <code
4064 >GET /disque1/stockage/apache/htdocs/images/rep-images1/nourriture/pommes.jpg HTTP/1.1</code>
4065 , l'affichage de la requête par mod_status se présentera comme suit :
4070 <th>Off (défaut)</th>
4071 <td>GET /disque1/stockage/apache/htdocs/images/rep-images1/nourritu</td>
4075 <td>apache/htdocs/images/rep-images1/nourriture/pommes.jpg HTTP/1.1</td>
4081 </directivesynopsis>
4084 <name>ServerAdmin</name>
4085 <description>L'adresse électronique que le serveur inclut dans les
4086 messages d'erreur envoyés au client</description>
4087 <syntax>ServerAdmin <var>adresse électronique</var>|<var>URL</var></syntax>
4088 <contextlist><context>server config</context><context>virtual
4093 <p>La directive <directive>ServerAdmin</directive> permet de définir
4094 l'adresse de contact que le serveur va inclure dans tout message
4095 d'erreur qu'il envoie au client. Si le programme <code>httpd</code>
4096 ne reconnait pas l'argument fourni comme une URL, il suppose que
4097 c'est une <var>adresse électronique</var>, et lui ajoute le préfixe
4098 <code>mailto:</code> dans les cibles des hyperliens. Il est
4099 cependant recommandé d'utiliser exclusivement une adresse
4100 électronique, car de nombreux scripts CGI considèrent ceci comme
4101 implicite. Si vous utilisez une URL, elle doit pointer vers un autre
4102 serveur que vous contrôlez. Dans le cas contraire, les utilisateurs
4103 seraient dans l'impossibilité de vous contacter en cas de problème.</p>
4105 <p>Il peut s'avérer utile de définir une adresse dédiée à
4106 l'administration du serveur, par exemple :</p>
4109 ServerAdmin www-admin@foo.example.com
4111 <p>car les utilisateurs ne mentionnent pas systématiquement le
4112 serveur dont ils parlent !</p>
4114 </directivesynopsis>
4117 <name>ServerAlias</name>
4118 <description>Autres noms d'un serveur utilisables pour atteindre des
4119 serveurs virtuels à base de nom</description>
4120 <syntax>ServerAlias <var>nom serveur</var> [<var>nom serveur</var>]
4122 <contextlist><context>virtual host</context></contextlist>
4125 <p>La directive <directive>ServerAlias</directive> permet de définir
4126 les noms alternatifs d'un serveur utilisables pour atteindre des <a
4127 href="../vhosts/name-based.html">serveurs virtuels à base de
4128 nom</a>. La directive <directive>ServerAlias</directive> peut
4129 contenir des caractères génériques, si nécessaire.</p>
4132 <VirtualHost *:80><br />
4133 ServerName serveur.example.com<br />
4134 ServerAlias serveur serveur2.example.com serveur2<br />
4135 ServerAlias *.example.com<br />
4136 UseCanonicalName Off<br />
4138 </VirtualHost>
4141 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4142 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4143 du serveur HTTP Apache</a></seealso>
4144 </directivesynopsis>
4147 <name>ServerName</name>
4148 <description>Nom d'hôte et port que le serveur utilise pour
4149 s'authentifier lui-même</description>
4150 <syntax>ServerName [<var>protocole</var>://]<var>nom de domaine
4151 entièrement qualifié</var>[:<var>port</var>]</syntax>
4152 <contextlist><context>server config</context><context>virtual
4157 <p>La directive <directive>ServerName</directive> permet de définir
4158 les protocole, nom d'hôte et port d'une requête que le serveur
4159 utilise pour s'authentifier lui-même. Ceci est utile lors de la
4160 création de redirections d'URLs.</p>
4162 <p>La directive <directive>ServerName</directive> permet aussi
4163 (éventuellement en conjonction avec la directive
4164 <directive>ServerAlias</directive>) d'identifier de manière unique
4165 un serveur virtuel, lorsqu'elle est utilisée dans un contexte de <a
4166 href="../vhosts/name-based.html">serveurs virtuels à base de
4169 <p>Par exemple, si le nom de la
4170 machine hébergeant le serveur web est
4171 <code>simple.example.com</code>, la machine possède l'alias
4172 DNS <code>www.example.com</code>, et si vous voulez que le serveur
4173 web s'identifie avec cet alias, vous devez utilisez la définition
4177 ServerName www.example.com
4180 <p>La directive <directive>ServerName</directive> peut apparaître à
4181 toutes les étapes de la définition du serveur. Toute occurrence
4182 annule cependant la précédente (pour ce serveur).</p>
4184 <p>Si la directive <directive>ServerName</directive> n'est pas
4185 définie, le serveur tente de déterminer le nom d'hôte en effectuant
4186 une recherche DNS inverse sur son adresse IP. Si la directive
4187 <directive>ServerName</directive> ne précise pas de port, le serveur
4188 utilisera celui de la requête entrante. Il est recommandé de
4189 spécifier un nom d'hôte et un port spécifiques à l'aide de la
4190 directive <directive>ServerName</directive> pour une fiabilité
4191 optimale et à titre préventif.</p>
4193 <p>Si vous définissez des <a
4194 href="../vhosts/name-based.html">serveurs virtuels à base de
4195 nom</a>, une directive <directive>ServerName</directive> située à
4196 l'intérieur d'une section <directive type="section"
4197 module="core">VirtualHost</directive> spécifiera quel nom d'hôte
4198 doit apparaître dans l'en-tête de requête <code>Host:</code> pour
4199 pouvoir atteindre ce serveur virtuel.</p>
4202 <p>Parfois, le serveur s'exécute en amont d'un dispositif qui
4203 implémente SSL, comme un mandataire inverse, un répartiteur de
4204 charge ou un boîtier dédié SSL. Dans ce cas, spécifiez le protocole
4205 <code>https://</code> et le port auquel les clients se connectent
4206 dans la directive <directive>ServerName</directive>, afin de
4207 s'assurer que le serveur génère correctement ses URLs
4208 d'auto-identification.
4211 <p>Voir la description des directives <directive
4212 module="core">UseCanonicalName</directive> et <directive
4213 module="core">UseCanonicalPhysicalPort</directive> pour les
4214 définitions qui permettent de déterminer si les URLs
4215 auto-identifiantes (par exemple via le module
4216 <module>mod_dir</module>) vont faire référence au port spécifié, ou
4217 au port indiqué dans la requête du client.
4220 <note type="warning">
4221 <p>Si la valeur de la directive <directive>ServerName</directive> ne
4222 peut pas être résolue en adresse IP, le démarrage du serveur
4223 provoquera un avertissement. <code>httpd</code> va alors utiliser le
4224 résultat de la commande système <code>hostname</code> pour
4225 déterminer le nom du serveur, ce qui ne correspondra pratiquement
4226 jamais au nom de serveur que vous souhaitez réellement.</p>
4228 httpd: Could not reliably determine the server's fully qualified domain name, using rocinante.local for ServerName
4234 <seealso><a href="../dns-caveats.html">Problèmes concernant le DNS et
4235 le serveur HTTP Apache</a></seealso>
4236 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4237 du serveur HTTP Apache</a></seealso>
4238 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4239 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
4240 <seealso><directive module="core">ServerAlias</directive></seealso>
4241 </directivesynopsis>
4244 <name>ServerPath</name>
4245 <description>Nom de chemin d'URL hérité pour un serveur virtuel à base
4246 de nom accédé par un navigateur incompatible</description>
4247 <syntax>ServerPath <var>chemin d'URL</var></syntax>
4248 <contextlist><context>virtual host</context></contextlist>
4251 <p>La directive <directive>ServerPath</directive> permet de définir
4252 le nom de chemin d'URL hérité d'un hôte, à utiliser avec les <a
4253 href="../vhosts/">serveurs virtuels à base de nom</a>.</p>
4255 <seealso><a href="../vhosts/">Documentation sur les serveurs virtuels
4256 du serveur HTTP Apache</a></seealso>
4257 </directivesynopsis>
4260 <name>ServerRoot</name>
4261 <description>Racine du répertoire d'installation du
4262 serveur</description>
4263 <syntax>ServerRoot <var>chemin de répertoire</var></syntax>
4264 <default>ServerRoot /usr/local/apache</default>
4265 <contextlist><context>server config</context></contextlist>
4268 <p>La directive <directive>ServerRoot</directive> permet de définir
4269 le répertoire dans lequel le serveur est installé. En particulier,
4270 il contiendra les sous-répertoires <code>conf/</code> et
4271 <code>logs/</code>. Les chemins relatifs indiqués dans les autres
4272 directives (comme <directive
4273 module="core">Include</directive> ou <directive
4274 module="mod_so">LoadModule</directive>) seront définis par
4275 rapport à ce répertoire.</p>
4277 <example><title>Example</title>
4278 ServerRoot /home/httpd
4281 <p>La valeur par défaut de <directive>ServerRoot</directive> peut
4282 être modifiée via l'argument <code>--prefix</code> de la commande <a
4283 href="../programs/configure.html"><code>configure</code></a>, et de
4284 nombreuses distributions tierces du serveur proposent une valeur
4285 différente de celles listées ci-dessus.</p>
4288 <seealso><a href="../invoking.html">the <code>-d</code>
4289 options de <code>httpd</code></a></seealso>
4290 <seealso><a href="../misc/security_tips.html#serverroot">les conseils à
4291 propos de sécurité</a> pour des informations sur la manière de définir
4292 correctement les permissions sur le répertoire indiqué par la directive
4293 <directive>ServerRoot</directive></seealso>
4294 </directivesynopsis>
4297 <name>ServerSignature</name>
4298 <description>Définit un pied de page pour les documents générés par le
4299 serveur</description>
4300 <syntax>ServerSignature On|Off|EMail</syntax>
4301 <default>ServerSignature Off</default>
4302 <contextlist><context>server config</context><context>virtual
4304 <context>directory</context><context>.htaccess</context>
4306 <override>All</override>
4309 <p>La directive <directive>ServerSignature</directive> permet de
4310 définir une ligne de pied de page fixe pour les documents générés
4311 par le serveur (messages d'erreur, listings de répertoires ftp de
4312 <module>mod_proxy</module>, sorties de <module>mod_info</module>,
4313 etc...). Dans le cas d'une chaîne de mandataires, l'utilisateur n'a
4314 souvent aucun moyen de déterminer lequel des mandataires chaînés a
4315 généré un message d'erreur, et c'est une des raisons pour lesquelles
4316 on peut être amené à ajouter un tel pied de page.</p>
4318 <p>La valeur par défaut <code>Off</code> supprime la ligne de pied
4319 de page (et est ainsi compatible avec le comportement des
4320 versions 1.2 et antérieures d'Apache). la valeur <code>On</code>
4321 ajoute simplement une ligne contenant le numéro de version du
4322 serveur ainsi que le nom du serveur virtuel issu de la directive
4323 <directive module="core">ServerName</directive>, alors que la valeur
4324 <code>EMail</code> ajoute en plus une référence "mailto:" à
4325 l'administrateur du document référencé issu la directive
4326 <directive module="core">ServerAdmin</directive>.</p>
4328 <p>Après la version 2.0.44, les détails à propos du numéro de
4329 version du serveur sont contrôlés à l'aide de la directive
4330 <directive module="core">ServerTokens</directive>.</p>
4332 <seealso><directive module="core">ServerTokens</directive></seealso>
4333 </directivesynopsis>
4336 <name>ServerTokens</name>
4337 <description>Configure l'en-tête <code>Server</code> de la réponse
4339 <syntax>ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full</syntax>
4340 <default>ServerTokens Full</default>
4341 <contextlist><context>server config</context></contextlist>
4344 <p>Cette directive permet de contrôler le contenu de l'en-tête
4345 <code>Server</code> inclus dans la réponse envoyée au client : cet
4346 en-tête peut contenir le type de système d'exploitation du serveur,
4347 ainsi que des informations à propos des modules compilés avec le
4351 <dt><code>ServerTokens Full</code> (ou non spécifié)</dt>
4353 <dd>Le serveur envoie par exemple : <code>Server: Apache/2.4.1
4354 (Unix) PHP/4.2.2 MyMod/1.2</code></dd>
4359 <dt><code>ServerTokens Prod[uctOnly]</code></dt>
4361 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4364 <dt><code>ServerTokens Major</code></dt>
4366 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4367 Apache/2</code></dd>
4369 <dt><code>ServerTokens Minor</code></dt>
4371 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4372 Apache/2.4</code></dd>
4374 <dt><code>ServerTokens Min[imal]</code></dt>
4376 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4377 Apache/2.4.1</code></dd>
4379 <dt><code>ServerTokens OS</code></dt>
4381 <dd>Le serveur renvoie (<em>par exemple</em>): <code>Server:
4382 Apache/2.4.1 (Unix)</code></dd>
4388 <p>Cette définition s'applique à l'ensemble du serveur et ne peut
4389 être activée ou désactivée pour tel ou tel serveur virtuel.</p>
4391 <p>Dans les versions postérieures à 2.0.44, cette directive contrôle
4392 aussi les informations fournies par la directive <directive
4393 module="core">ServerSignature</directive>.</p>
4395 <note>Définir <directive>ServerTokens</directive> à une
4396 valeur inférieure à <code>minimal</code> n'est pas
4397 recommandé car le débogage des problèmes
4398 interopérationnels n'en sera alors que plus difficile. Notez
4399 aussi que la désactivation de l'en-tête Server:
4400 n'améliore en rien la sécurité de votre
4401 serveur ; le concept de "sécurité par
4402 l'obscurité" est un mythe et conduit à
4403 une mauvaise perception de ce qu'est la sécurité.</note>
4407 <seealso><directive module="core">ServerSignature</directive></seealso>
4408 </directivesynopsis>
4411 <name>SetHandler</name>
4412 <description>Force le traitement des fichiers spécifiés par un
4413 gestionnaire particulier</description>
4414 <syntax>SetHandler <var>nom gestionnaire</var>|None</syntax>
4415 <contextlist><context>server config</context><context>virtual
4417 <context>directory</context><context>.htaccess</context>
4419 <override>FileInfo</override>
4420 <compatibility>Intégré dans le noyau d'Apache httpd depuis la version
4424 <p>Lorsqu'elle se situe à l'intérieur d'un fichier
4425 <code>.htaccess</code>, ou d'une section <directive type="section"
4426 module="core">Directory</directive> ou <directive type="section"
4427 module="core">Location</directive>, cette directive force le
4428 traitement de tous les fichiers spécifiés par le <a
4429 href="../handler.html">gestionnaire</a> défini par l'argument
4430 <var>nom gestionnaire</var>. Par exemple, dans le cas d'un
4431 répertoire dont vous voulez interpréter le contenu comme des
4432 fichiers de règles d'images cliquables, sans tenir compte des
4433 extensions, vous pouvez ajouter la ligne suivante dans un fichier
4434 <code>.htaccess</code> de ce répertoire :</p>
4437 SetHandler imap-file
4440 <p>Autre exemple : si vous voulez que le serveur affiche un
4441 compte-rendu d'état chaque fois qu'une URL du type <code>http://nom
4442 serveur/status</code> est appelée, vous pouvez ajouter ceci dans
4443 <code>httpd.conf</code> :</p>
4446 <Location /status><br />
4448 SetHandler server-status<br />
4453 <p>Vous pouvez écraser la définition antérieure d'une directive
4454 <directive>SetHandler</directive> en utilisant la valeur
4455 <code>None</code>.</p>
4457 <note><title>Note</title>
4458 <p>Comme <directive>SetHandler</directive> l'emporte sur la
4459 définition des gestionnaires par défaut, le comportement habituel
4460 consistant à traiter les URLs se terminant par un slash (/) comme
4461 des répertoires ou des fichiers index est désactivé.</p></note>
4464 <seealso><directive module="mod_mime">AddHandler</directive></seealso>
4466 </directivesynopsis>
4469 <name>SetInputFilter</name>
4470 <description>Définit les filtres par lesquels vont passer les requêtes
4471 client et les données POST</description>
4472 <syntax>SetInputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4473 <contextlist><context>server config</context><context>virtual
4475 <context>directory</context><context>.htaccess</context>
4477 <override>FileInfo</override>
4480 <p>La directive <directive>SetInputFilter</directive> permet de
4481 définir le ou les filtres par lesquels vont passer les requêtes
4482 client et les données POST au moment où le serveur les reçoit. Cette
4483 définition vient en ajout à tout autre filtre défini en
4484 quelqu'endroit que ce soit, y compris via la directive <directive
4485 module="mod_mime">AddInputFilter</directive>.</p>
4487 <p>Si la directive comporte plusieurs filtres, ils doivent être
4488 séparés par des points-virgules, et spécifiés selon l'ordre dans
4489 lequel vous souhaitez les voir agir sur les contenus.</p>
4491 <seealso>documentation des <a
4492 href="../filter.html">Filtres</a></seealso>
4493 </directivesynopsis>
4496 <name>SetOutputFilter</name>
4497 <description>Définit les filtres par lesquels vont passer les réponses
4498 du serveur</description>
4499 <syntax>SetOutputFilter <var>filtre</var>[;<var>filtre</var>...]</syntax>
4500 <contextlist><context>server config</context><context>virtual
4502 <context>directory</context><context>.htaccess</context>
4504 <override>FileInfo</override>
4507 <p>La directive <directive>SetOutputFilter</directive> permet de
4508 définir les filtres par lesquels vont passer les réponses du serveur
4509 avant d'être envoyées au client. Cette définition vient en ajout à
4510 tout autre filtre défini en quelqu'endroit que ce soit, y compris
4511 via la directive <directive
4512 module="mod_mime">AddOutputFilter</directive>.</p>
4514 <p>Par exemple, la configuration suivante va traiter tous les
4515 fichiers du répertoire <code>/www/data/</code> comme des inclusions
4516 côté serveur (SSI) :</p>
4519 <Directory /www/data/><br />
4521 SetOutputFilter INCLUDES<br />
4526 <p>Si la directive comporte plusieurs filtres, ils doivent être
4527 séparés par des points-virgules, et spécifiés selon l'ordre dans
4528 lequel vous souhaitez les voir agir sur les contenus.</p>
4530 <seealso><a href="../filter.html">Filters</a> documentation</seealso>
4531 </directivesynopsis>
4534 <name>TimeOut</name>
4535 <description>Temps pendant lequel le serveur va attendre certains
4536 évènements avant de considérer qu'une requête a échoué</description>
4537 <syntax>TimeOut <var>secondes</var></syntax>
4538 <default>TimeOut 60</default>
4539 <contextlist><context>server config</context><context>virtual
4540 host</context></contextlist>
4543 <p>La directive <directive>TimeOut</directive> permet de définir le
4544 temps maximum pendant lequel Apache httpd va attendre des entrées/sorties
4545 selon les circonstances :</p>
4548 <li>Lors de la lecture de données en provenance du client, le
4549 temps maximum jusqu'à l'arrivée d'un paquet TCP si le tampon est
4552 <li>Lors de l'écriture de données destinées au client, le temps
4553 maximum jusqu'à l'arrivée de l'accusé-réception d'un paquet si le
4554 tampon d'envoi est plein.</li>
4556 <li>Avec <module>mod_cgi</module>, le temps d'attente maximum des
4557 sorties d'un script CGI.</li>
4559 <li>Avec <module>mod_ext_filter</module>, le temps d'attente
4560 maximum des sorties d'un processus de filtrage.</li>
4562 <li>Avec <module>mod_proxy</module>, la valeur du délai par défaut
4563 si <directive module="mod_proxy">ProxyTimeout</directive> n'est
4564 pas défini.</li>
4568 </directivesynopsis>
4571 <name>TraceEnable</name>
4572 <description>Détermine le comportement des requêtes
4573 <code>TRACE</code></description>
4574 <syntax>TraceEnable <var>[on|off|extended]</var></syntax>
4575 <default>TraceEnable on</default>
4576 <contextlist><context>server config</context><context>virtual host</context></contextlist>
4577 <compatibility>Disponible dans les versions 1.3.34, 2.0.55 et
4578 supérieures du serveur HTTP Apache</compatibility>
4581 <p>Cette directive l'emporte sur le comportement de
4582 <code>TRACE</code> pour le noyau du serveur et
4583 <module>mod_proxy</module>. La définition par défaut
4584 <code>TraceEnable on</code> permet des requêtes <code>TRACE</code>
4585 selon la RFC 2616, qui interdit d'ajouter tout corps à la requête.
4586 La définition <code>TraceEnable off</code> indique au noyau du
4587 serveur et à <module>mod_proxy</module> de retourner un code
4588 d'erreur <code>405</code> (Méthode non autorisée) au client.</p>
4590 <p>En fait, et à des fins de test et de diagnostic seulement, on
4591 peut autoriser l'ajout d'un corps de requête à l'aide de la
4592 définition non standard <code>TraceEnable extended</code>. Le noyau
4593 du serveur (dans le cas d'un serveur d'origine) va limiter la taille
4594 du corps de requête à 64k (plus 8k pour les en-têtes de
4595 fractionnement si <code>Transfer-Encoding: chunked</code> est
4596 utilisé). Le noyau du serveur va reproduire l'ensemble des en-têtes,
4597 y compris les en-têtes de fractionnement avec le corps de la
4598 réponse. Dans le cas d'un serveur mandataire, la taille du corps de
4599 requête n'est pas limitée à 64k.</p>
4601 </directivesynopsis>
4604 <name>UnDefine</name>
4605 <description>Invalide la définition d'une variable</description>
4606 <syntax>UnDefine <var>nom-variable</var></syntax>
4607 <contextlist><context>server config</context></contextlist>
4610 <p>Annule l'effet d'une directive <directive
4611 module="core">Define</directive> ou d'un argument <code>-D</code> de
4612 <program>httpd</program> en invalidant l'existence de la variable
4614 <p>On peut utiliser cette directive pour inverser l'effet d'une
4615 section <directive module="core" type="section">IfDefine</directive>
4616 sans avoir à modifier les arguments <code>-D</code> dans les scripts
4617 de démarrage.</p>
4619 </directivesynopsis>
4622 <name>UseCanonicalName</name>
4623 <description>Définit la manière dont le serveur détermine son propre nom
4624 et son port</description>
4625 <syntax>UseCanonicalName On|Off|DNS</syntax>
4626 <default>UseCanonicalName Off</default>
4627 <contextlist><context>server config</context><context>virtual
4629 <context>directory</context></contextlist>
4632 <p>Dans de nombreuses situations, Apache httpd doit construire une URL
4633 <em>auto-identifiante</em> -- c'est à dire une URL qui fait
4634 référence au serveur lui-même. Avec <code>UseCanonicalName
4635 On</code>, Apache httpd va utiliser le nom d'hôte et le port spécifiés par
4636 la directive <directive module="core">ServerName</directive> pour
4637 construire le nom canonique du serveur. Ce nom est utilisé dans
4638 toutes les URLs auto-identifiantes, et affecté aux variables
4639 <code>SERVER_NAME</code> et <code>SERVER_PORT</code> dans les
4642 <p>Avec <code>UseCanonicalName Off</code>, Apache httpd va construire ses
4643 URLs auto-identifiantes à l'aide du nom d'hôte et du port fournis
4644 par le client, si ce dernier en a fourni un (dans la négative,
4645 Apache utilisera le nom canonique, de la même manière que
4646 ci-dessus). Ces valeurs sont les mêmes que celles qui sont utilisées
4647 pour implémenter les <a
4648 href="../vhosts/name-based.html">serveurs virtuels à base de
4649 nom</a>, et sont disponibles avec les mêmes clients. De même, les
4650 variables CGI <code>SERVER_NAME</code> et <code>SERVER_PORT</code>
4651 seront affectées des valeurs fournies par le client.</p>
4653 <p>Cette directive peut s'avérer utile, par exemple, sur un serveur
4654 intranet auquel les utilisateurs se connectent en utilisant des noms
4655 courts tels que <code>www</code>. Si les utilisateurs tapent un nom
4656 court suivi d'une URL qui fait référence à un répertoire, comme
4657 <code>http://www/splat</code>, <em>sans le slash terminal</em>, vous
4658 remarquerez qu'Apache httpd va les rediriger vers
4659 <code>http://www.example.com/splat/</code>. Si vous avez activé
4660 l'authentification, ceci va obliger l'utilisateur à s'authentifier
4661 deux fois (une première fois pour <code>www</code> et une seconde
4662 fois pour <code>www.example.com</code> -- voir <a
4663 href="http://httpd.apache.org/docs/misc/FAQ.html#prompted-twice">la
4664 foire aux questions sur ce sujet pour plus d'informations</a>). Par
4665 contre, si <directive>UseCanonicalName</directive> est définie à
4666 <code>Off</code>, Apache httpd redirigera l'utilisateur vers
4667 <code>http://www/splat/</code>.</p>
4669 <p>Pour l'hébergement virtuel en masse à base d'adresse IP, on
4670 utilise une troisième option, <code>UseCanonicalName
4671 DNS</code>, pour supporter les clients anciens qui ne
4672 fournissent pas d'en-tête <code>Host:</code>. Apache httpd effectue alors
4673 une recherche DNS inverse sur l'adresse IP du serveur auquel le
4674 client s'est connecté afin de construire ses URLs
4675 auto-identifiantes.</p>
4677 <note type="warning"><title>Avertissement</title>
4678 <p>Les programmes CGI risquent d'être perturbés par cette option
4679 s'ils tiennent compte de la variable <code>SERVER_NAME</code>. Le
4680 client est pratiquement libre de fournir la valeur qu'il veut comme
4681 nom d'hôte. Mais si le programme CGI n'utilise
4682 <code>SERVER_NAME</code> que pour construire des URLs
4683 auto-identifiantes, il ne devrait pas y avoir de problème.</p>
4686 <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso>
4687 <seealso><directive module="core">ServerName</directive></seealso>
4688 <seealso><directive module="mpm_common">Listen</directive></seealso>
4689 </directivesynopsis>
4692 <name>UseCanonicalPhysicalPort</name>
4693 <description>Définit la manière dont le serveur
4694 détermine son propre port</description>
4695 <syntax>UseCanonicalPhysicalPort On|Off</syntax>
4696 <default>UseCanonicalPhysicalPort Off</default>
4697 <contextlist><context>server config</context><context>virtual
4699 <context>directory</context></contextlist>
4702 <p>Dans de nombreuses situations, Apache httpd doit construire une URL
4703 <em>auto-identifiante</em> -- c'est à dire une URL qui fait
4704 référence au serveur lui-même. Avec <code>UseCanonicalPhysicalPort
4705 On</code>, Apache httpd va fournir le numéro de port physique réel utilisé
4706 par la requête en tant que port potentiel, pour construire le port
4707 canonique afin que le serveur puisse alimenter la directive
4708 <directive module="core">UseCanonicalName</directive>. Avec
4709 <code>UseCanonicalPhysicalPort Off</code>, Apache httpd n'utilisera pas le
4710 numéro de port physique réel, mais au contraire se référera aux
4711 informations de configuration pour construire un numéro de port
4714 <note><title>Note</title>
4715 <p>L'ordre dans lequel s'effectue la recherche quand on utilise le
4716 port physique est le suivant :</p>
4718 <dt><code>UseCanonicalName On</code></dt>
4721 <li>Port indiqué dans <directive module="core">Servername</directive></li>
4722 <li>Port physique</li>
4723 <li>Port par défaut</li>
4726 <dt><code>UseCanonicalName Off | DNS</code></dt>
4729 <li>Port spécifié dans l'en-tête <code>Host:</code></li>
4730 <li>Port physique</li>
4731 <li>Port spécifié par <directive module="core">Servername</directive></li>
4732 <li>Port par défaut</li>
4737 <p>Avec <code>UseCanonicalPhysicalPort Off</code>, on reprend
4738 l'ordre ci-dessus en supprimant "Port physique".</p>
4742 <seealso><directive module="core">UseCanonicalName</directive></seealso>
4743 <seealso><directive module="core">ServerName</directive></seealso>
4744 <seealso><directive module="mpm_common">Listen</directive></seealso>
4745 </directivesynopsis>
4747 <directivesynopsis type="section">
4748 <name>VirtualHost</name>
4749 <description>Contient des directives qui ne s'appliquent qu'à un nom
4750 d'hôte spécifique ou à une adresse IP</description>
4751 <syntax><VirtualHost
4752 <var>adresse IP</var>[:<var>port</var>] [<var>adresse
4753 IP</var>[:<var>port</var>]] ...> ...
4754 </VirtualHost></syntax>
4755 <contextlist><context>server config</context></contextlist>
4758 <p>Les balises <directive type="section">VirtualHost</directive> et
4759 <code></VirtualHost></code> permettent de rassembler un groupe
4760 de directives qui ne s'appliquent qu'à un serveur virtuel
4761 particulier. Toute directive autorisée dans un contexte de serveur
4762 virtuel peut être utilisée. Lorsque le serveur reçoit un requête
4763 pour un document hébergé par un serveur virtuel particulier, il
4764 applique les directives de configuration rassemblées dans la section
4765 <directive type="section">VirtualHost</directive>. <var>adresse
4766 IP</var> peut être une des entités suivantes, éventuellement suivies
4767 d'un caractère ':' et d'un numéro de port (ou *) :</p>
4770 <li>L'adresse IP du serveur virtuel ;</li>
4772 <li>Un nom de domaine entièrement qualifié correspondant à
4773 l'adresse IP du serveur virtuel (non recommandé) ;</li>
4775 <li>Le caractère <code>*</code>, qui agit comme un
4776 caractère générique, et correspond à toute adresse IP.</li>
4778 <li>La chaîne <code>_default_</code>, dont la signification est
4779 identique à celle du caractère <code>*</code></li>
4783 <example><title>Exemple</title>
4784 <VirtualHost 10.1.2.3:80><br />
4786 ServerAdmin webmaster@host.example.com<br />
4787 DocumentRoot /www/docs/host.example.com<br />
4788 ServerName host.example.com<br />
4789 ErrorLog logs/host.example.com-error_log<br />
4790 TransferLog logs/host.example.com-access_log<br />
4792 </VirtualHost>
4796 <p>Les adresses IPv6 doivent être entourées de crochets car dans le
4797 cas contraire, un éventuel port optionnel ne pourrait pas être
4798 déterminé. Voici un exemple de serveur virtuel avec adresse IPv6
4802 <VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80><br />
4804 ServerAdmin webmaster@host.example.com<br />
4805 DocumentRoot /www/docs/host.example.com<br />
4806 ServerName host.example.com<br />
4807 ErrorLog logs/host.example.com-error_log<br />
4808 TransferLog logs/host.example.com-access_log<br />
4810 </VirtualHost>
4813 <p>Chaque serveur virtuel doit correspondre à une adresse IP, un
4814 port ou un nom d'hôte spécifique ; dans le premier cas, le serveur
4815 doit être configuré pour recevoir les paquets IP de plusieurs
4816 adresses (si le serveur n'a qu'une interface réseau, on peut
4817 utiliser à cet effet la commande <code>ifconfig alias</code> -- si
4818 votre système d'exploitation le permet).</p>
4820 <note><title>Note</title>
4821 <p>L'utilisation de la directive <directive
4822 type="section">VirtualHost</directive> n'affecte en rien les
4823 adresses IP sur lesquelles Apache httpd est en écoute. Vous devez vous
4824 assurer que les adresses des serveurs virtuels sont bien incluses
4825 dans la liste des adresses précisées par la directive <directive
4826 module="mpm_common">Listen</directive>.</p>
4829 <p>Tout bloc <directive
4830 type="section">VirtualHost</directive> doit comporter une directive
4831 <directive module="core">ServerName</directive>. Dans le cas
4832 contraire, le serveur virtuel héritera de la valeur de la directive
4833 <directive module="core">ServerName</directive> issue de la
4834 configuration du serveur principal.</p>
4836 <p>A l'arrivée d'une requête, le serveur tente de la
4837 faire prendre en compte par la section <directive
4838 type="section">VirtualHost</directive> qui correspond le mieux en ne
4839 se basant que sur la paire adresse IP/port. Les chaînes sans
4840 caractères génériques l'emportent sur celles qui en contiennent. Si
4841 aucune correspondance du point de vue de l'adresse IP/port n'est
4842 trouvée, c'est la configuration du serveur "principal" qui sera
4843 utilisée.</p>
4845 <p>Si plusieurs serveurs virtuels correspondent du point de vue de
4846 l'adresse IP/port, le serveur sélectionne celui qui correspond le
4847 mieux du point de vue du nom d'hôte de la requête. Si aucune
4848 correspondance du point de vue du nom d'hôte n'est trouvée, c'est le
4849 premier serveur virtuel dont l'adresse IP/port correspond qui sera
4850 utilisé. Par voie de conséquence, le premier serveur virtuel
4851 comportant une certaine paire adresse IP/port est le serveur virtuel
4852 par défaut pour cette paire adresse IP/port.</p>
4854 <note type="warning"><title>Sécurité</title>
4855 <p>Voir le document sur les <a
4856 href="../misc/security_tips.html">conseils à propos de sécurité</a>
4857 pour une description détaillée des raisons pour lesquelles la
4858 sécurité de votre serveur pourrait être compromise, si le répertoire
4859 contenant les fichiers journaux est inscriptible par tout autre
4860 utilisateur que celui qui démarre le serveur.</p>
4863 <seealso><a href="../vhosts/">Documentation des serveurs virtuels
4864 du serveur HTTP Apache</a></seealso>
4865 <seealso><a href="../dns-caveats.html">Problèmes concernant le DNS et
4866 le serveur HTTP Apache</a></seealso>
4867 <seealso><a href="../bind.html">Définition des adresses et ports
4868 qu'utilise le serveur HTTP Apache</a></seealso>
4869 <seealso><a href="../sections.html">Comment fonctionnent les sections
4870 <Directory>, <Location> et <Files></a> pour une
4871 explication de la manière dont ces différentes sections se combinent
4872 entre elles à la réception d'une requête</seealso>
4873 </directivesynopsis>