<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
+<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
-<title>Sections de configuration - Serveur Apache HTTP</title>
+<title>Sections de configuration - Serveur Apache HTTP Version 2.5</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
-<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
+<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
+<script src="./style/scripts/prettify.min.js" type="text/javascript">
+</script>
+
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
-<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
-<p class="apache">Serveur Apache HTTP Version 2.3</p>
-<img alt="" src="./images/feather.gif" /></div>
+<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
+<p class="apache">Serveur Apache HTTP Version 2.5</p>
+<img alt="" src="./images/feather.png" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
<div id="path">
-<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.3</a></div><div id="page-content"><div id="preamble"><h1>Sections de configuration</h1>
+<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Sections de configuration</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="./en/sections.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./fr/sections.html" title="Français"> fr </a> |
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#types">Types de conteneurs de sections de
configuration</a></li>
-<li><img alt="" src="./images/down.gif" /> <a href="#file-and-web">Système de fichiers et
-arborescence du site web</a></li>
+<li><img alt="" src="./images/down.gif" /> <a href="#file-and-web">Système de fichiers,
+arborescence du site web et expressions booléennes</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#virtualhost">Hôtes virtuels</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#proxy">Mandataire</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#whatwhere">Quelles sont les directives autorisées ?</a></li>
-<li><img alt="" src="./images/down.gif" /> <a href="#mergin">Comment les sections sont combinées entre elles</a></li>
-</ul></div>
+<li><img alt="" src="./images/down.gif" /> <a href="#merging">Comment les sections sont combinées entre elles</a></li>
+</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="types" id="types">Types de conteneurs de sections de
un autre site si le serveur est démarré en utilisant la ligne de commande :
<code>httpd -DClosedForNow</code>:</p>
-<div class="example"><p><code>
-<IfDefine ClosedForNow><br />
-Redirect / http://otherserver.example.com/<br />
-</IfDefine>
-</code></p></div>
+<pre class="prettyprint lang-config"><IfDefine ClosedForNow>
+ Redirect "/" "http://otherserver.example.com/"
+</IfDefine></pre>
+
<p>Le conteneur <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code>
est similaire; les directives qu'il contient ne s'appliqueront que si
systématiquement, car vous pouvez perdre ainsi de précieux messages d'erreur
à propos de modules manquants.</p>
-<p>Dans l'exemple suivant, la directive <code class="directive"><a href="./mod/mod_mime_magic.html#mimemagicfiles">MimeMagicFiles</a></code> ne s'appliquera que si le
+<p>Dans l'exemple suivant, la directive <code class="directive"><a href="./mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code> ne s'appliquera que si le
module <code class="module"><a href="./mod/mod_mime_magic.html">mod_mime_magic</a></code> est disponible.</p>
-<div class="example"><p><code>
-<IfModule mod_mime_magic.c><br />
-MimeMagicFile conf/magic<br />
-</IfModule>
-</code></p></div>
+<pre class="prettyprint lang-config"><IfModule mod_mime_magic.c>
+ MimeMagicFile conf/magic
+</IfModule></pre>
+
<p>Le conteneur
<code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code>
et les grands réseaux qui doivent prendre en compte différentes versions
et configurations de httpd.</p>
-<div class="example"><p><code>
- <IfVersion >= 2.1><br />
- <span class="indent">
+<pre class="prettyprint lang-config"><IfVersion >= 2.4>
# les directives situées ici ne s'appliquent que si la version <br />
- # est supérieure ou égale à 2.1.0.<br />
- </span>
- </IfVersion>
-</code></p></div>
+ # est supérieure ou égale à 2.4.0.
+</IfVersion></pre>
+
<p><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code>,
<code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code>, et
plus complexes.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
-<h2><a name="file-and-web" id="file-and-web">Système de fichiers et
-arborescence du site web</a></h2>
+<h2><a name="file-and-web" id="file-and-web">Système de fichiers,
+arborescence du site web et expressions booléennes</a></h2>
<p>Les conteneurs de sections de configuration les plus couramment utilisés
sont ceux qui modifient la configuration de points particuliers du système de
comprendre la différence entre les deux. Le système de fichiers est une vue
de vos disques tels qu'ils sont perçus par votre système d'exploitation.
Par exemple, avec une installation par défaut,
-Apache est situé dans <code>/usr/local/apache2</code> pour le système de
+Apache httpd est situé dans <code>/usr/local/apache2</code> pour le système de
fichiers UNIX, ou <code>"c:/Program Files/Apache Group/Apache2"</code> pour
le système de fichiers Windows. (Notez que des slashes directs doivent
-toujours être utilisés comme séparateur de chemin dans Apache, même sous
+toujours être utilisés comme séparateur de chemin
+dans les fichiers de configuration d'Apache httpd, même sous
Windows.) Quant à
l'arborescence du site web, il s'agit d'une vue de votre site
tel que présenté par le
serveur web et perçue par le client. Ainsi le chemin <code>/dir/</code> dans
l'arborescence du site web correspond au chemin
<code>/usr/local/apache2/htdocs/dir/</code> dans le système de fichiers pour
-une installation d'Apache par défaut sous UNIX.
+une installation d'Apache httpd par défaut sous UNIX.
En outre, l'arborescence du site web n'a pas besoin de correspondre en permanence au
système de fichiers, car les pages web peuvent être générées dynamiquement
à partir de bases de données ou d'autres emplacements.</p>
<p>Les conteneurs <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>
et <code class="directive"><a href="./mod/core.html#files"><Files></a></code>,
ainsi que leurs équivalents acceptant les
-<a class="glossarylink" href="./glossary.html#regex" title="see glossary">expressions rationnelles</a>,
+<a class="glossarylink" href="./glossary.html#regex" title="voir glossaire">expressions rationnelles</a>,
appliquent des directives à certaines parties du système de fichiers.
Les directives contenues dans une section <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> s'appliquent au répertoire
-précisé, ainsi qu'à tous ses sous-répertoires.
+précisé, ainsi qu'à tous ses sous-répertoires et aux fichiers que ces
+derniers contiennent.
Le même effet peut être obtenu en utilisant les <a href="howto/htaccess.html">fichiers .htaccess</a>. Par exemple, avec la
configuration suivante, l'indexation sera activée pour le répertoire
<code>/var/web/dir1</code> et tous ses sous-répertoires.</p>
-<div class="example"><p><code>
-<Directory /var/web/dir1><br />
-Options +Indexes<br />
-</Directory>
-</code></p></div>
+<pre class="prettyprint lang-config"><Directory "/var/web/dir1">
+ Options +Indexes
+</Directory></pre>
+
<p>Les directives contenues dans une section <code class="directive"><a href="./mod/core.html#files"><Files></a></code> s'appliquent à tout fichier
avec le nom spécifié, quel que soit le répertoire dans lequel il se trouve.
l'accès à tout fichier nommé <code>private.html</code> quel que soit
l'endroit où il se trouve.</p>
-<div class="example"><p><code>
-<Files private.html><br />
-Order allow,deny<br />
-Deny from all<br />
-</Files>
-</code></p></div>
+<pre class="prettyprint lang-config"><Files "private.html">
+ Require all denied
+</Files></pre>
+
<p>Pour faire référence à des fichiers qui se trouvent en des points
particuliers du système de fichiers, les sections
<code>private.html</code> qui se trouve dans l'arborescence
<code>/var/web/dir1/</code>.</p>
-<div class="example"><p><code>
-<Directory /var/web/dir1><br />
-<Files private.html><br />
-Order allow,deny<br />
-Deny from all<br />
-</Files><br />
-</Directory>
-</code></p></div>
+<pre class="prettyprint lang-config"><Directory "/var/web/dir1">
+ <Files "private.html">
+ Require all denied
+ </Files>
+</Directory></pre>
+
<h3><a name="webspace" id="webspace">Conteneurs de l'arborescence du site web</a></h3>
<p>le conteneur <code class="directive"><a href="./mod/core.html#location"><Location></a></code>
et son équivalent acceptant les
-<a class="glossarylink" href="./glossary.html#regex" title="see glossary">expressions rationnelles</a>, modifient quant à eux la
+<a class="glossarylink" href="./glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, modifient quant à eux la
configuration de parties de l'arborescence du site web. Par exemple, la
configuration suivante interdit l'accès à toute URL dont la partie chemin
commence par /private.
<code>http://yoursite.example.com/private/dir/file.html</code> ainsi qu'à
toute requête commençant par la chaîne de caractères <code>/private</code>.</p>
-<div class="example"><p><code>
-<Location /private><br />
-Order Allow,Deny<br />
-Deny from all<br />
-</Location>
-</code></p></div>
+<pre class="prettyprint lang-config"><LocationMatch "^/private">
+ Require all denied
+</LocationMatch></pre>
+
<p>Le conteneur <code class="directive"><a href="./mod/core.html#location"><Location></a></code>
n'a pas besoin de faire référence à un élément du système de fichiers.
Par exemple, l'exemple suivant montre comment faire référence à une URL
-particulière vers un gestionnaire interne d'Apache fourni par le module
+particulière vers un gestionnaire interne du serveur HTTP Apache fourni par le module
<code class="module"><a href="./mod/mod_status.html">mod_status</a></code>.
Il n'est pas nécessaire de trouver un fichier nommé <code>server-status</code>
dans le système de fichiers.</p>
-<div class="example"><p><code>
-<Location /server-status><br />
-SetHandler server-status<br />
+<pre class="prettyprint lang-config"><Location "/server-status">
+ SetHandler server-status
+</Location></pre>
+
+
+
+<h3><a name="overlapping-webspace" id="overlapping-webspace">Espace web imbriqué</a></h3>
+<p>Pour contrôler deux URLs imbriquées, on doit tenir compte de l'ordre
+dans lequel certaines sections ou directives sont évaluées. Pour
+<code class="directive"><a href="./mod/core.html#location"><Location></a></code>, on doit
+avoir :</p>
+<pre class="prettyprint lang-config"><Location "/foo">
</Location>
-</code></p></div>
+<Location "/foo/bar">
+</Location></pre>
+
+<p>Les directives <code class="directive"><a href="./mod/mod_alias.html#alias"><Alias></a></code>, quant à elles, sont évaluées vice-versa :</p>
+<pre class="prettyprint lang-config">Alias "/foo/bar" "/srv/www/uncommon/bar"
+Alias "/foo" "/srv/www/common/foo"</pre>
+
+<p>Ceci est aussi vrai pour les directives <code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code> :</p>
+<pre class="prettyprint lang-config">ProxyPass "/special-area" "http://special.example.com" smax=5 max=10
+ProxyPass "/" "balancer://mycluster/" stickysession=JSESSIONID|jsessionid nofailover=On</pre>
+
+
<h3><a name="wildcards" id="wildcards">Caractères de remplacement
<p>Si une définition des critères de correspondance
encore plus souple est nécessaire, chaque conteneur
possède son équivalent acceptant les expressions rationnelles : <code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code>, <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code>, et <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code> acceptent les
-<a class="glossarylink" href="./glossary.html#regex" title="see glossary">expressions rationnelles</a> compatibles Perl
+<a class="glossarylink" href="./glossary.html#regex" title="voir glossaire">expressions rationnelles</a> compatibles Perl
pour définir les critères de correspondance. Mais voyez plus loin la section
à propos de la combinaison des sections de configuration
pour comprendre comment l'utilisation de
mais sans utiliser
les expressions rationnelles pourrait ressembler à ceci :</p>
-<div class="example"><p><code>
-<Directory /home/*/public_html><br />
-Options Indexes<br />
-</Directory>
-</code></p></div>
+<pre class="prettyprint lang-config"><Directory "/home/*/public_html">
+ Options Indexes
+</Directory></pre>
+
<p>Avec les conteneurs utilisant les expressions rationnelles,
on peut interdire l'accès à de nombreux types de fichiers d'images
simultanément :</p>
-<div class="example"><p><code>
-<FilesMatch \.(?i:gif|jpe?g|png)$><br />
-Order allow,deny<br />
-Deny from all<br />
-</FilesMatch>
-</code></p></div>
+<pre class="prettyprint lang-config">+<FilesMatch "\.(?i:gif|jpe?g|png)$">
+ Require all denied
+</FilesMatch></pre>
+
+
+<p>Les expressions rationnelles contenant des <strong>groupes nommés et
+des références arrières</strong> sont ajoutées à l'environnement avec
+leur nom en majuscules. Ceci permet de référencer des éléments de
+chemins de fichiers et d'URLs depuis une <a href="expr.html">expression</a> et au sein de modules comme
+<code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
+
+<pre class="prettyprint lang-config"><DirectoryMatch "^/var/www/combined/(?<SITENAME>[^/]+)">
+ require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
+</DirectoryMatch></pre>
+
+
+
+
+<h3><a name="expressions" id="expressions">Expressions booléennes</a></h3>
+<p>La directive <code class="directive"><a href="./mod/core.html#if"><If></a></code>
+permet de modifier la configuration en fonction d'une condition qui peut
+être définie sous la forme d'une expression booléenne. Dans l'exemple
+suivant, l'accès est interdit si l'en-tête HTTP Referer ne commence pas
+par "http://www.example.com/".</p>
+<pre class="prettyprint lang-config"><If "!(%{HTTP_REFERER} -strmatch 'http://www.example.com/*')">
+ Require all denied
+</If></pre>
+
du système de fichier, ce qui peut permettre de contourner vos restrictions.
Par exemple, imaginez la configuration suivante :</p>
-<div class="example"><p><code>
-<Location /dir/><br />
-Order allow,deny<br />
-Deny from all<br />
-</Location>
-</code></p></div>
+<pre class="prettyprint lang-config"><Location "/dir/">
+ Require all denied
+</Location></pre>
+
<p>Elle fonctionne correctement si la requête appelle
<code>http://yoursite.example.com/dir/</code>. Mais que va-t-il se passer si
possible toujours utiliser les conteneurs de système de fichiers.
Il y a cependant une exception à cette règle. Placer des restrictions de
configuration dans un conteneur <code><Location
-/></code> est tout à fait sans rique car ce conteneur va s'appliquer à
+"/"></code> est tout à fait sans rique car ce conteneur va s'appliquer à
toutes les requêtes sans tenir compte de l'URL spécifique.</p>
+<h3><a name="nesting" id="nesting">Imbrication des sections</a></h3>
+
+<p>Certains types de sections peuvent être imbriqués : d'une part, on
+peut utiliser les sections <code class="directive"><a href="./mod/core.html#files"><Files></a></code> à l'intérieur des sections <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, d'autre part, on
+peut utiliser les
+directives <code class="directive"><a href="./mod/core.html#if"><If></a></code> à
+l'intérieur des sections <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="./mod/core.html#location"><Location></a></code> et <code class="directive"><a href="./mod/core.html#files"><Files></a></code>. Les valeurs des expressions
+rationnelles correspondant aux sections nommées se comportent de manière
+identique.</p>
+
+<p>Les sections imbriquées sont fusionnées après les sections
+non-imbriquées de même type.</p>
+
+
+
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="virtualhost" id="virtualhost">Hôtes virtuels</a></h2>
appliquent les directives de configuration qu'ils contiennent uniquement aux
sites qui correspondent à l'URL spécifiée et auxquels on a
accédé via le serveur mandataire du module <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>.
-Par exemple, la configuration suivante
-va interdire l'utilisation du serveur proxy pour accéder au site
-<code>cnn.com</code>.</p>
-
-<div class="example"><p><code>
-<Proxy http://cnn.com/*><br />
-Order allow,deny<br />
-Deny from all<br />
-</Proxy>
-</code></p></div>
+Par exemple, la configuration suivante n'autorisera qu'un sous-ensemble de
+clients à accéder au site <code>www.example.com</code> en passant par le serveur
+mandataire :.</p>
+
+<pre class="prettyprint lang-config"><Proxy http://www.example.com/*>
+ Require host yournetwork.example.com
+</Proxy></pre>
+
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="whatwhere" id="whatwhere">Quelles sont les directives autorisées ?</a></h2>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
-<h2><a name="mergin" id="mergin">Comment les sections sont combinées entre elles</a></h2>
+<h2><a name="merging" id="merging">Comment les sections sont combinées entre elles</a></h2>
<p>Les sections de configuration sont appliquées dans un ordre très particulier.
Il est important de savoir comment cet ordre est défini car il peut avoir
<code class="directive"><a href="./mod/core.html#location"><Location></a></code>
et <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code> sont appliquées
simultanément</li>
+
+ <li>Les directives <code class="directive"><a href="./mod/core.html#if"><If></a></code>
+ </li>
</ol>
<p>Mises à part les sections <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, chaque groupe est traité selon
l'ordre dans lequel il apparaît dans les fichiers de configuration.
Les sections <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> (groupe 1 ci-dessus)
sont traitées dans l'ordre du répertoire le plus court vers le plus long.
- Par exemple, <code><Directory /var/web/dir></code> sera
+ Par exemple, <code><Directory "/var/web/dir"></code> sera
traité avant <code><Directory
- /var/web/dir/subdir></code>. Si plusieurs sections <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> s'appliquent au même
+ "/var/web/dir/subdir"></code>. Si plusieurs sections <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> s'appliquent au même
répertoire, elles sont traitées selon l'ordre dans lequel elles
apparaissent dans le fichier de configuration.
Les sections de configuration incluses via la directive <code class="directive"><a href="./mod/core.html#include">Include</a></code> sont traitées comme si elles se
<p>Quand la requête est servie par le module <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>,
le conteneur <code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code>
prend la place du conteneur <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> dans l'ordre de traitement.</p>
-
- <p>Les sections situées plus loin dans le fichier de configuration prévalent
- sur celles qui les précèdent.</p>
-
-<div class="note"><h3>Note technique</h3>
- Une séquence
- <code><Location></code>/<code><LocationMatch></code>
+
+ <div class="note"><h3>Note technique</h3>
+ Une séquence <code><Location></code>/<code><LocationMatch></code>
est réellement traitée juste avant la phase de traduction du nom
(où <code>Aliases</code> et <code>DocumentRoots</code>
sont utilisés pour faire correspondre les URLs aux noms de fichiers).
Les effets de cette séquence disparaissent totalement lorsque
la traduction est terminée.
-</div>
+ </div>
+
+<h3><a name="relationship-module-configuration" id="relationship-module-configuration">Interactions entre
+modules et sections de configuration</a></h3>
+ <p>Une question se pose souvent après avoir lu comment les sections de
+ configuration sont fusionnées : comment et quand les directives de modules
+ particuliers comme <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> sont-elles interprétées ? La
+ réponse n'est pas triviale et nécessite un approfondissement. Chaque module
+ httpd gère sa propre configuration, et chacune de ses directives dans
+ httpd.conf définit un élément de configuration dans un contexte particulier.
+ httpd n'exécute pas un commande au moment où elle est lue.</p>
+ <p>A l'exécution, le noyau de httpd parcours les sections de configuration
+ dans l'ordre décrit ci-dessus afin de déterminer lesquelles s'appliquent à
+ la requête courante. Lorsqu'une première section s'applique, elle est
+ considérée comme la configuration courante pour cette requête. Si une
+ section suivante s'applique aussi, chaque module qui possède des directives
+ dans chacune de ces sections a la possibilité de fusionner sa configuration
+ entre ces deux sections. Il en résulte une troisième configuration et le
+ processus de fusion se poursuit jusqu'à ce que toutes les sections de
+ configuration aient été évaluées.</p>
+ <p>Après l'étape précédente, le traitement proprement dit de la requête HTTP
+ peut commencer : chaque module peut effectuer toute tâche qui lui incombe,
+ et pour déterminer de quelle manière dont il doit agir, il peut s'appuyer
+ sur le noyau de httpd pour retrouver sa configuration globale issue de la
+ fusion précédente.</p>
+ <p>Un exemple permet de mieux visualiser l'ensemble du processus. la
+ configuration suivante utilise la directive <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code> du module
+ <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code> pour définir un en-tête HTTP spécifique. Quelle
+ valeur httpd va-t-il affecter à l'en-tête <code>CustomHeaderName</code> pour
+ une requête vers <code>/example/index.html</code> ?
+ </p>
+ <pre class="prettyprint lang-config"><Directory "/">
+ Header set CustomHeaderName one
+ <FilesMatch ".*">
+ Header set CustomHeaderName three
+ </FilesMatch>
+</Directory>
-<h3><a name="merge-examples" id="merge-examples">Quelques exemples</a></h3>
+<Directory "/example">
+ Header set CustomHeaderName two
+</Directory></pre>
+
+ <ul>
+ <li><code class="directive">Directory</code> "/" s'applique, et une configuration
+ initiale est créée qui définit l'en-tête <code>CustomHeaderName</code>
+ avec la valeur <code>one</code>.</li>
+ <li><code class="directive">Directory</code> "/example" s'applique, et comme
+ <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code> spécifie dans son code que
+ la valeur d'un en-tête doit être écrasée si ce dernier est défini à
+ nouveau, une nouvelle configuration est créée qui définit l'en-tête
+ <code>CustomHeaderName</code> avec la valeur <code>two</code>.</li>
+ <li><code class="directive">FilesMatch</code> ".*" s'applique, une nouvelle
+ opportunité de fusion surgit, et l'en-tête <code>CustomHeaderName</code>
+ est défini à la valeur <code>three</code>.</li>
+ <li>Finalement, au cours des étapes suivantes du traitement de la
+ requête HTTP, <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code> sera sollicité, et il se
+ basera sur la configuration qui a défini l'en-tête
+ <code>CustomHeaderName</code> à la valeur <code>three</code>.
+ <code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code> utilise normalement cette configuration pour
+ accomplir sa tâche, à savoir définir des en-têtes HTTP. Cela ne veut
+ cependant pas dire qu'un module ne peut pas effectuer des actions plus
+ complexes comme désactiver des directives car elle ne sont pas
+ nécessaires ou obsolètes, etc...</li>
+ </ul>
+
+ <p>Ceci est aussi vrai pour les fichiers .htaccess car ils possèdent la même
+ priorité que les sections <code class="directive">Directory</code> dans l'ordre de
+ fusion. Il faut bien comprendre que les sections de configuration comme
+ <code class="directive">Directory</code> et <code class="directive">FilesMatch</code> ne
+ sont pas comparables avec les directives spécifiques de modules comme
+ <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code> ou <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> car elles agissent à des
+ niveaux différents.
+ </p>
+
+
+<h3><a name="merge-examples" id="merge-examples">Quelques exemples utiles</a></h3>
<p>Voici un exemple imaginaire qui montre l'ordre de combinaison des sections.
En supposant qu'elles s'appliquent toutes à la requête, les directives de
cet exemple seront appliquées dans l'ordre suivant : A > B > C > D >
E.</p>
-<div class="example"><p><code>
-<Location /><br />
-E<br />
-</Location><br />
-<br />
-<Files f.html><br />
-D<br />
-</Files><br />
-<br />
-<VirtualHost *><br />
-<Directory /a/b><br />
-B<br />
-</Directory><br />
-</VirtualHost><br />
-<br />
-<DirectoryMatch "^.*b$"><br />
-C<br />
-</DirectoryMatch><br />
-<br />
-<Directory /a/b><br />
-A<br />
-</Directory><br />
-<br />
-</code></p></div>
+<pre class="prettyprint lang-config"><Location "/">
+ E
+</Location>
+
+<Files "f.html">
+ D
+</Files>
+
+<VirtualHost *>
+ <Directory "/a/">
+ B
+ </Directory>
+</VirtualHost>
+
+<DirectoryMatch "^.*b$">
+ C
+</DirectoryMatch>
+
+<Directory "/a/b">
+ A
+</Directory></pre>
+
<p>Pour un exemple plus concret, considérez ce qui suit. Sans tenir compte
de toute restriction d'accès placée dans les sections <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, la section <code class="directive"><a href="./mod/core.html#location"><Location></a></code> sera
En d'autres termes, l'ordre de la combinaison des sections est important,
soyez donc prudent !</p>
-<div class="example"><p><code>
-<Location /><br />
-Order deny,allow<br />
-Allow from all<br />
-</Location><br />
-<br />:if expand("%") == ""|browse confirm w|else|confirm w|endif
-
-# Arrghs! Cette section <Directory> n'aura aucun effet<br />
-<Directory /><br />
-Order allow,deny<br />
-Allow from all<br />
-Deny from badguy.example.com<br />
-</Directory>
-</code></p></div>
+<pre class="prettyprint lang-config"><Location "/">
+ Require all granted
+</Location>
+
+# Arrghs! Cette section <Directory> n'aura aucun effet
+<Directory "/">
+ <RequireAll>
+ Require all granted
+ Require not host badguy.example.com
+ </RequireAll>
+</Directory></pre>
+
<a href="./ja/sections.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="./tr/sections.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
-</div><div id="footer">
-<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Authorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
-<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div>
+</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
+<script type="text/javascript"><!--//--><![CDATA[//><!--
+var comments_shortname = 'httpd';
+var comments_identifier = 'http://httpd.apache.org/docs/trunk/sections.html';
+(function(w, d) {
+ if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
+ d.write('<div id="comments_thread"><\/div>');
+ var s = d.createElement('script');
+ s.type = 'text/javascript';
+ s.async = true;
+ s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
+ (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
+ }
+ else {
+ d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
+ }
+})(window, document);
+//--><!]]></script></div><div id="footer">
+<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
+if (typeof(prettyPrint) !== 'undefined') {
+ prettyPrint();
+}
+//--><!]]></script>
</body></html>
\ No newline at end of file