diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 15:01:30 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 15:01:30 +0000 |
commit | 6beeb1b708550be0d4a53b272283e17e5e35fe17 (patch) | |
tree | 1ce8673d4aaa948e5554000101f46536a1e4cc29 /docs/manual/sections.html.fr.utf8 | |
parent | Initial commit. (diff) | |
download | apache2-3d46059c28a1d66e6e1aeb209491f1324c913a25.tar.xz apache2-3d46059c28a1d66e6e1aeb209491f1324c913a25.zip |
Adding upstream version 2.4.57.upstream/2.4.57
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docs/manual/sections.html.fr.utf8')
-rw-r--r-- | docs/manual/sections.html.fr.utf8 | 687 |
1 files changed, 687 insertions, 0 deletions
diff --git a/docs/manual/sections.html.fr.utf8 b/docs/manual/sections.html.fr.utf8 new file mode 100644 index 0000000..deec5eb --- /dev/null +++ b/docs/manual/sections.html.fr.utf8 @@ -0,0 +1,687 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Sections de configuration - Serveur HTTP Apache Version 2.4</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 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="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 HTTP Apache Version 2.4</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.4</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> | +<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> + <p>Les directives des <a href="configuring.html">fichiers de configuration</a> peuvent s'appliquer +au serveur dans son ensemble, ou seulement à des répertoires, fichiers, hôtes, +ou URLs particuliers. Ce document décrit comment utiliser les conteneurs de +sections de configuration ou les fichiers <code>.htaccess</code> pour +modifier la portée des directives de configuration.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><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, +arborescence du site web et expressions booléennes</a></li> +<li><img alt="" src="./images/down.gif" /> <a href="#virtualhost">Serveurs 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="#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 +configuration</a></h2> + +<table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/core.html">core</a></code></li><li><code class="module"><a href="./mod/mod_version.html">mod_version</a></code></li><li><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code></li><li><code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#files"><Files></a></code></li><li><code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#if"><If></a></code></li><li><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code></li><li><code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code></li><li><code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code></li><li><code class="directive"><a href="./mod/core.html#location"><Location></a></code></li><li><code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code></li><li><code class="directive"><a href="./mod/mod_md.html#mdomainsetsection"><MDomainSet></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxymatch"><ProxyMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code></li></ul></td></tr></table> + +<p>Il existe deux grands types de conteneurs. La plupart des conteneurs sont +évalués pour chaque requête. Les directives qu'ils contiennent s'appliquent +seulement aux requêtes qui sont concernées par le conteneur. En revanche, +les conteneurs +<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 +<code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code> sont +évalués seulement au démarrage et au redémarrage du serveur. +Si leurs conditions sont vérifiées au démarrage, les directives qu'ils contiennent +s'appliqueront à toutes les requêtes. Si leurs conditions ne sont pas vérifiées, les +directives qu'ils contiennent seront ignorées.</p> + +<p>Le conteneur <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> +contient des directives qui ne seront appliquées que si un paramètre +approprié a été défini dans la ligne de commande de <code class="program"><a href="./programs/httpd.html">httpd</a></code>. +Par exemple, +avec la configuration suivante, toutes les requêtes seront redirigées vers +un autre site si le serveur est démarré en utilisant la ligne de commande : +<code>httpd -DClosedForNow</code>:</p> + +<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 +un module particulier est disponible au niveau du serveur. +Le module doit être soit compilé statiquement dans le serveur, soit +dynamiquement et dans ce cas, la ligne <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> correspondante doit apparaître +plus haut dans le fichier de configuration. Ce conteneur ne doit être +utilisé que dans le cas où votre fichier de configuration doit fonctionner +indépendamment de la présence ou de l'absence de certains modules. +Il ne doit pas contenir de directives que vous souhaitez voir s'appliquer +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#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> + +<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> +est similaire aux conteneurs <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> et <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code>; les directives qu'il contient ne +s'appliqueront que si une version particulière du serveur s'exécute. Ce +conteneur a été conçu pour une utilisation dans les suites de tests +et les grands réseaux qui doivent prendre en compte différentes versions +et configurations de httpd.</p> + +<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.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 +<code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code> +peuvent inverser leur test conditionnel en le faisant précéder d'un "!". +De plus, ces sections peuvent être imbriquées afin de définir des restrictions +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, +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 +fichiers ou de l'arborescence du site web. Tout d'abord, il est important 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 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 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 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> + +<h3><a name="filesystem" id="filesystem">Conteneurs de système de fichiers</a></h3> + +<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="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 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> + +<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. +Ainsi par exemple, les directives de configuration suivantes, si elles sont +placées dans la section principale du fichier de configuration, vont interdire +l'accès à tout fichier nommé <code>private.html</code> quel que soit +l'endroit où il se trouve.</p> + +<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 class="directive"><a href="./mod/core.html#files"><Files></a></code> et +<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> +peuvent être combinées. Par exemple, la configuration suivante va interdire +l'accès à <code>/var/web/dir1/private.html</code>, +<code>/var/web/dir1/subdir2/private.html</code>, +<code>/var/web/dir1/subdir3/private.html</code>, ainsi que toute instance de +<code>private.html</code> qui se trouve dans l'arborescence +<code>/var/web/dir1/</code>.</p> + +<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="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. +En particulier, l'interdiction s'appliquera aux requêtes pour : +<code>http://yoursite.example.com/private</code>, +<code>http://yoursite.example.com/private123</code>, et +<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> + +<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 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> + +<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> +<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 +et expressions rationnelles</a></h3> + +<p>Les conteneurs +<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, +<code class="directive"><a href="./mod/core.html#files"><Files></a></code>, et +<code class="directive"><a href="./mod/core.html#location"><Location></a></code> +peuvent utiliser des caractères de remplacement de style shell comme dans +la fonction <code>fnmatch</code> de la bibliothèque C standard. +Le caractère "*" +correspond à toute séquence de caractères, "?" à un caractère seul, +et "[<em>seq</em>]" à tout caractère contenu dans <em>seq</em>. +Le caractère "/" +ne peut pas faire l'objet d'un remplacement; +il doit être spécifié explicitement.</p> + +<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="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 +conteneurs avec des expressions rationnelles va modifier la manière +dont les directives sont appliquées.</p> + +<p>Un conteneur qui modifie la configuration de tous les +répertoires utilisateurs à l'aide de caractères de remplacement +mais sans utiliser +les expressions rationnelles pourrait ressembler à ceci :</p> + +<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> +<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> + + + + +<h3><a name="whichwhen" id="whichwhen">Que faut-il utiliser et quand ?</a></h3> + +<p>Choisir entre des conteneurs de système de fichiers et des conteneurs +d'arborescence du site web est vraiment très simple. +Pour appliquer des directives à des objets qui résident dans le système de +fichiers, utilisez toujours un conteneur <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> ou <code class="directive"><a href="./mod/core.html#files"><Files></a></code>. Pour appliquer des directives à des objets +qui ne résident pas dans le système de fichiers (comme une page web générée +par une base de données), utilisez un conteneur <code class="directive"><a href="./mod/core.html#location"><Location></a></code>.</p> + +<p>Il ne faut jamais utiliser un conteneur <code class="directive"><a href="./mod/core.html#location"><Location></a></code> pour restreindre l'accès à des +objets du système de fichiers, car plusieurs localisations de +l'arborescence du site web (URLs) peuvent correspondre à la même localisation +du système de fichier, ce qui peut permettre de contourner vos restrictions. +Par exemple, imaginez la configuration suivante :</p> + +<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 +votre système de fichiers est insensible à la casse ? +Votre restriction va pouvoir être tout simplement contournée en envoyant une +requête sur +<code>http://yoursite.example.com/DIR/</code>. Le conteneur <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, quant à lui, s'appliquera +à tout contenu servi à partir de cette localisation, +sans tenir compte de la manière dont il est appelé. +(Les liens du système de fichiers constituent une exception. +Le même répertoire peut être placé dans plusieurs parties du système de +fichiers en utilisant des liens symboliques. Le conteneur +<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> va suivre le +lien symbolique sans modifier le nom du chemin. Par conséquent, pour plus de +sécurité, les liens symboliques doivent être désactivés à l'aide de la +directive +<code class="directive"><a href="./mod/core.html#options">Options</a></code> appropriée.)</p> + +<p>Si vous pensez que vous n'êtes pas concerné par ce problème +parceque vous utilisez un système de fichiers sensible à la casse, +gardez à l'esprit qu'il y a de nombreuses autres manières pour faire +correspondre plusieurs localisations de l'arborescence du site web à la même +localisation du système de fichiers. C'est pourquoi vous devez autant que +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 à +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> (mais pas à l'intérieur d'une +autre section <code class="directive"><a href="./mod/core.html#if"><If></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">Serveurs virtuels</a></h2> + +<p>Le conteneur <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code> +contient des directives qui s'appliquent à des serveurs virtuels spécifiques. +Ceci s'avère utile pour servir les contenus de plusieurs serveurs virtuels à +partir de la même machine, chacun d'entre eux possédant une configuration +différente. Pour de plus amples informations, voir la <a href="vhosts/">Documentation sur les serveurs virtuels</a>.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> +<div class="section"> +<h2><a name="proxy" id="proxy">Mandataire</a></h2> + +<p>Les conteneurs +<code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code> +et <code class="directive"><a href="./mod/mod_proxy.html#proxymatch"><ProxyMatch></a></code> +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 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> + +<p>Pour déterminer quelles sont les directives autorisées pour tel type de +section de configuration, vérifiez le <a href="mod/directive-dict.html#Context">Contexte</a> de la directive. +Tout ce qui est autorisé dans les sections +<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> +l'est aussi d'un point de vue syntaxique dans les sections +<code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code>, +<code class="directive"><a href="./mod/core.html#files"><Files></a></code>, +<code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code>, +<code class="directive"><a href="./mod/core.html#location"><Location></a></code>, +<code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code>, +<code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code>, +et <code class="directive"><a href="./mod/mod_proxy.html#proxymatch"><ProxyMatch></a></code>. +Il y a cependant quelques exceptions :</p> + +<ul> +<li>La directive <code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code> +ne fonctionne que dans les sections +<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>.</li> + +<li>Les <code class="directive"><a href="./mod/core.html#options">Options</a></code> <code>FollowSymLinks</code> et +<code>SymLinksIfOwnerMatch</code> ne fonctionnent que dans les sections +<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> ou les fichiers +<code>.htaccess</code>.</li> + +<li>La directive <code class="directive"><a href="./mod/core.html#options">Options</a></code> ne peut pas être +utilisée dans les sections +<code class="directive"><a href="./mod/core.html#files"><Files></a></code> +et <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code>.</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="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 +des effets importants sur la manière dont les directives de configuration +sont interprétées.</p> + + <p>L'ordre dans lequel les sections sont appliquées est :</p> + + <ol> + <li> Les sections <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> (à l'exception des + expressions rationnelles) + et les fichiers <code>.htaccess</code> sont appliquées simultanément (avec + la possibilité pour <code>.htaccess</code>, s'il y est autorisé, de + prévaloir sur + <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>)</li> + + <li>Les sections + <code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code> + (et <code><Directory "~"></code>)</li> + + <li>Les sections <code class="directive"><a href="./mod/core.html#files"><Files></a></code> et <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code> sont appliquées + simultanément</li> + + <li>Les sections + <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 sections <code class="directive"><a href="./mod/core.html#if"><If></a></code>, + même si elles sont incluses dans un des contextes précédents. + </li> + </ol> + + <p>Quelques remarques importantes :</p> + <ul> + <li>Mises à part les sections <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, dans chaque groupe, les sections sont + traitées selon + l'ordre dans lequel elles apparaissent dans les fichiers de configuration. + Par exemple, une requête pour <em>/foo/bar</em> correspondra à + <code><Location "/foo/bar"></code> et <code><Location + "/foo"></code> (dans ce cas le groupe 4) : les deux sections seront + évaluées mais selon l'ordre dans lequel elles apparaissent dans le fichier + de configuration..</li> + <li>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 + traitée avant <code><Directory + "/var/web/dir/subdir"></code>.</li> + <li>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.</li> + <li>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 + trouvaient réellement dans le fichier qui les inclut à la position de la + directive + <code class="directive"><a href="./mod/core.html#include">Include</a></code>.</li> + <li>Les sections situées à l'intérieur de sections <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code> + sont appliquées <em>après</em> les sections correspondantes situées en + dehors de la définition de l'hôte virtuel, ce qui permet à l'hôte virtuel + de prévaloir sur la configuration du serveur principal.</li> + <li>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.</li> + <li>Il faut être très prudent lorsqu'on mélange des directives de + configuration similaires à l'intérieur et à l'extérieur d'une section + <code class="directive"><a href="./mod/core.html#if"><If></a></code> car leur ordre + d'apparition a de l'importance. A cet effet, l'utilisation explicite de la + directive <code class="directive"><a href="./mod/core.html#else"><Else></a></code> + peut vous y aider. + </li> + <li>Lorsqu'une section <code class="directive"><a href="./mod/core.html#if"><If></a></code> est utilisée dans un fichier <code>.htaccess</code>, les + directives incluses dans un répertoire parent seront fusionnées + <em>après</em> les directives non-incluses dans un sous-répertoire. + </li> + </ul> + + <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> + +<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 une commande au moment où elle est lue.</p> + <p>A l'exécution, le noyau de httpd parcourt 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> + +<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> + +<pre class="prettyprint lang-config"><Location "/"> + E +</Location> + +<Files "f.html"> + D +</Files> + +<VirtualHost *> + <Directory "/a/b"> + 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 +évaluée en dernier et permettra un accès au serveur sans aucune restriction. +En d'autres termes, l'ordre de la combinaison des sections est important, +soyez donc prudent !</p> + +<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> + + + + +</div></div> +<div class="bottomlang"> +<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> | +<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 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 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 Libera.chat, or sent to our <a href="https://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/2.4/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 2023 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/directives.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 |