mirror of
https://github.com/apache/httpd.git
synced 2025-08-10 02:56:11 +00:00

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1302251 13f79535-47bb-0310-9956-ffa450edef68
595 lines
33 KiB
Plaintext
595 lines
33 KiB
Plaintext
<?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><!--
|
|
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
This file is generated from xml source: DO NOT EDIT
|
|
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
-->
|
|
<title>Sections de configuration - Serveur Apache HTTP</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="./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.5</p>
|
|
<img alt="" src="./images/feather.gif" /></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.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> |
|
|
<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"><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">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>
|
|
<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_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>
|
|
|
|
<div class="example"><p><code>
|
|
<IfDefine ClosedForNow><br />
|
|
Redirect / http://otherserver.example.com/<br />
|
|
</IfDefine>
|
|
</code></p></div>
|
|
|
|
<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>
|
|
|
|
<div class="example"><p><code>
|
|
<IfModule mod_mime_magic.c><br />
|
|
MimeMagicFile conf/magic<br />
|
|
</IfModule>
|
|
</code></p></div>
|
|
|
|
<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>
|
|
|
|
<div class="example"><p><code>
|
|
<IfVersion >= 2.1><br />
|
|
<span class="indent">
|
|
# 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>
|
|
|
|
<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>
|
|
|
|
<div class="example"><p><code>
|
|
<Directory /var/web/dir1><br />
|
|
Options +Indexes<br />
|
|
</Directory>
|
|
</code></p></div>
|
|
|
|
<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>
|
|
|
|
<div class="example"><p><code>
|
|
<Files private.html><br />
|
|
Order allow,deny<br />
|
|
Deny from all<br />
|
|
</Files>
|
|
</code></p></div>
|
|
|
|
<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>
|
|
|
|
<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>
|
|
|
|
|
|
<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>
|
|
|
|
<div class="example"><p><code>
|
|
<LocationMatch ^/private><br />
|
|
Order Allow,Deny<br />
|
|
Deny from all<br />
|
|
</Location>
|
|
</code></p></div>
|
|
|
|
<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>
|
|
|
|
<div class="example"><p><code>
|
|
<Location /server-status><br />
|
|
SetHandler server-status<br />
|
|
</Location>
|
|
</code></p></div>
|
|
|
|
|
|
<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>
|
|
<div class="example"><p><code>
|
|
<Location /foo><br />
|
|
</Location><br />
|
|
<Location /foo/bar><br />
|
|
</Location>
|
|
</code></p></div>
|
|
<p>Les directives <code class="directive"><a href="./mod/mod_alias.html#alias"><Alias></a></code>, quant à elles, sont évaluées vice-versa :</p>
|
|
<div class="example"><p><code>
|
|
Alias /foo/bar /srv/www/uncommon/bar<br />
|
|
Alias /foo /srv/www/common/foo<br />
|
|
</code></p></div>
|
|
<p>Ceci est aussi vrai pour les directives <code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code> :</p>
|
|
<div class="example"><p><code>
|
|
ProxyPass /special-area http://special.example.com smax=5 max=10<br />
|
|
ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
|
|
</code></p></div>
|
|
|
|
|
|
|
|
<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>
|
|
|
|
<div class="example"><p><code>
|
|
<Directory /home/*/public_html><br />
|
|
Options Indexes<br />
|
|
</Directory>
|
|
</code></p></div>
|
|
|
|
<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>
|
|
|
|
|
|
|
|
<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>
|
|
<div class="example"><p><code>
|
|
<If "!(%{HTTP_REFERER} -strmatch 'http://www.example.com/*')"><br />
|
|
Require all denied<br />
|
|
</If>
|
|
</code></p></div>
|
|
|
|
|
|
|
|
<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>
|
|
|
|
<div class="example"><p><code>
|
|
<Location /dir/><br />
|
|
Order allow,deny<br />
|
|
Deny from all<br />
|
|
</Location>
|
|
</code></p></div>
|
|
|
|
<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>. 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>
|
|
|
|
<p>Le conteneur <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code>
|
|
contient des directives qui s'appliquent à des hôtes spécifiques.
|
|
Ceci s'avère utile pour servir des hôtes multiples à 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 hôtes 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
|
|
va interdire l'utilisation du serveur proxy pour accéder au site
|
|
<code>www.example.com</code>.</p>
|
|
|
|
<div class="example"><p><code>
|
|
<Proxy http://www.example.com/*><br />
|
|
Order allow,deny<br />
|
|
Deny from all<br />
|
|
</Proxy>
|
|
</code></p></div>
|
|
</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="mergin" id="mergin">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 combiné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és 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 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
|
|
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
|
|
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
|
|
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>.</p>
|
|
|
|
<p>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.</p>
|
|
|
|
<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 ; cependant, chaque
|
|
module est responsable de la définition de la forme que doit prendre
|
|
cette prévalence. Une section de configuration ultérieure contenant
|
|
des directives d'un certain module peut être à l'origine d'une
|
|
fusion conceptuelle de certaines directives, de toutes les
|
|
directives, ou un remplacement complet de la configuration du module
|
|
par ses valeurs par défaut et les directives explicitement définies
|
|
dans cette section ultérieure.</p>
|
|
|
|
<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="merge-examples" id="merge-examples">Quelques exemples</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>
|
|
|
|
<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>
|
|
|
|
<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>
|
|
|
|
|
|
|
|
</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 id="footer">
|
|
<p class="apache">Copyright 2012 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="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div>
|
|
</body></html> |