mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-02 06:53:27 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1428540 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			300 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			300 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
<?xml version="1.0"?>
 | 
						|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 | 
						|
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
 | 
						|
<!-- English Revision : 1421821 -->
 | 
						|
<!-- French translation : Lucien GENTIS -->
 | 
						|
<!-- Reviewed by : Vincent Deffontaines -->
 | 
						|
 | 
						|
<!--
 | 
						|
 Licensed to the Apache Software Foundation (ASF) under one or more
 | 
						|
 contributor license agreements.  See the NOTICE file distributed with
 | 
						|
 this work for additional information regarding copyright ownership.
 | 
						|
 The ASF licenses this file to You under the Apache License, Version 2.0
 | 
						|
 (the "License"); you may not use this file except in compliance with
 | 
						|
 the License.  You may obtain a copy of the License at
 | 
						|
 | 
						|
     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
 Unless required by applicable law or agreed to in writing, software
 | 
						|
 distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
 See the License for the specific language governing permissions and
 | 
						|
 limitations under the License.
 | 
						|
-->
 | 
						|
 | 
						|
<modulesynopsis metafile="mod_dir.xml.meta">
 | 
						|
<name>mod_dir</name>
 | 
						|
<description>Permet la redirection des adresses se terminant par un
 | 
						|
répertoire sans slash de fin et la mise à disposition des fichiers index
 | 
						|
de répertoire</description>
 | 
						|
<status>Base</status>
 | 
						|
<sourcefile>mod_dir.c</sourcefile>
 | 
						|
<identifier>dir_module</identifier>
 | 
						|
 | 
						|
<summary>
 | 
						|
    <p>L'index d'un répertoire peut provenir de deux sources :</p>
 | 
						|
 | 
						|
    <ul>
 | 
						|
      <li>Un fichier écrit par l'utilisateur, dont le nom, en général
 | 
						|
      appelé <code>index.html</code>, peut être défini à l'aide de la
 | 
						|
      directive <directive module="mod_dir">DirectoryIndex</directive>
 | 
						|
      fournie par le module <module>mod_dir</module>.</li>
 | 
						|
 | 
						|
      <li>Un listing généré par le serveur, par l'intermédiaire du
 | 
						|
      module <module>mod_autoindex</module>.</li>
 | 
						|
    </ul>
 | 
						|
    <p>Les deux fonctions sont bien distinctes, si bien que vous pouvez
 | 
						|
    supprimer (ou remplacer) la génération automatique d'index, si vous
 | 
						|
    le souhaitez.</p>
 | 
						|
 | 
						|
    <p>Une redirection "slash de fin" est effectuée lorsque le serveur
 | 
						|
    reçoit une requête pour une URL du style
 | 
						|
    <code>http://nom-serveur/foo/nom-rep</code> où <code>nom-rep</code>
 | 
						|
    est le nom d'un répertoire. Comme les répertoires nécessitent un slash de
 | 
						|
    fin, <module>mod_dir</module> effectue une redirection vers
 | 
						|
    <code>http://nom-serveur/foo/nom-rep/</code>.</p>
 | 
						|
</summary>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>DirectoryIndex</name>
 | 
						|
<description>Liste des fichiers ressources à rechercher lorsque le
 | 
						|
client envoie une requête pour un répertoire</description>
 | 
						|
<syntax>DirectoryIndex
 | 
						|
    disabled | <var>url locale</var> [<var>url locale</var>] ...</syntax>
 | 
						|
<default>DirectoryIndex index.html</default>
 | 
						|
<contextlist><context>server config</context><context>virtual host</context>
 | 
						|
<context>directory</context><context>.htaccess</context></contextlist>
 | 
						|
<override>Indexes</override>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <p>La directive <directive>DirectoryIndex</directive> permet de
 | 
						|
    définir une liste de fichiers ressources à rechercher lorsqu'un
 | 
						|
    client envoie une requête pour l'index d'un répertoire, en ajoutant
 | 
						|
    un '/' à la fin du nom de ce dernier. <var>url locale</var> est
 | 
						|
    l'URL (codée avec caractères '%') d'un document du serveur, relative
 | 
						|
    au répertoire faisant l'objet de la requête ; il s'agit en général
 | 
						|
    du nom d'un fichier situé dans le répertoire. Si plusieurs URLs sont
 | 
						|
    fournies, le serveur renverra la première d'entre elles qui
 | 
						|
    correspond à une ressource existante. Si aucune ressource ne
 | 
						|
    correspond à la liste des URLs spécifiées, et si l'option
 | 
						|
    <code>Indexes</code> est définie, le serveur générera son propre
 | 
						|
    listing du répertoire.</p>
 | 
						|
 | 
						|
    <example><title>Exemple</title>
 | 
						|
    <highlight language="config">
 | 
						|
      DirectoryIndex index.html
 | 
						|
      </highlight>
 | 
						|
    </example>
 | 
						|
 | 
						|
    <p>Avec cette configuration, une requête pour l'URL
 | 
						|
    <code>http://example.com/docs/</code> renverrait au client la
 | 
						|
    ressource <code>http://example.com/docs/index.html</code> si elle
 | 
						|
    existe, ou provoquerait la génération du listing du répertoire si la
 | 
						|
    ressource n'existe pas.</p>
 | 
						|
 | 
						|
    <p>Notez qu'il n'est pas nécessaire que les documents soient
 | 
						|
    relatifs au répertoire ;</p>
 | 
						|
 | 
						|
    <highlight language="config">
 | 
						|
      DirectoryIndex index.html index.txt  /cgi-bin/index.pl
 | 
						|
    </highlight>
 | 
						|
 | 
						|
    <p>provoquerait l'exécution du script CGI
 | 
						|
    <code>/cgi-bin/index.pl</code> si aucun des fichiers
 | 
						|
    <code>index.html</code> ou <code>index.txt</code> n'existe dans le
 | 
						|
    répertoire considéré.</p>
 | 
						|
 | 
						|
    <p>La spécification du seul argument "disabled" empêche
 | 
						|
    <module>mod_dir</module> de rechercher un index. Un argument
 | 
						|
    "disabled" sera interprété de manière littérale si d'autres
 | 
						|
    arguments sont présents avant ou après lui, même s'ils sont
 | 
						|
    eux-mêmes des arguments "disabled".</p>
 | 
						|
 | 
						|
    <p><strong>Note :</strong>La définition de plusieurs directives
 | 
						|
    <directive>DirectoryIndex</directive> au sein d'un <a href="../sections.html"><em>même
 | 
						|
    contexte</em></a> permet d'ajouter des ressources à rechercher plutôt
 | 
						|
    que de remplacer celle déjà définies :
 | 
						|
    </p>
 | 
						|
    <highlight language="config">
 | 
						|
# Exemple A: définit index.html comme page d'index, ainsi qu'index.php.
 | 
						|
<Directory /foo>
 | 
						|
    DirectoryIndex index.html
 | 
						|
    DirectoryIndex index.php
 | 
						|
</Directory>
 | 
						|
 | 
						|
# Exemple B: identique à l'exemple A, mais avec une seule directive.
 | 
						|
<Directory /foo>
 | 
						|
    DirectoryIndex index.html index.php
 | 
						|
</Directory>
 | 
						|
 | 
						|
# Exemple C: pour remplacer la liste des pages d'index par une autre,
 | 
						|
# vous devez tout d'abord supprimer la première liste : dans l'exemple
 | 
						|
# suivant, il ne restera qu'index.php comme page d'index.
 | 
						|
<Directory /foo>
 | 
						|
    DirectoryIndex index.html
 | 
						|
    DirectoryIndex disabled
 | 
						|
    DirectoryIndex index.php
 | 
						|
</Directory>
 | 
						|
    </highlight>
 | 
						|
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>DirectoryIndexRedirect</name>
 | 
						|
<description>Définit une redirection externe pour les index de
 | 
						|
répertoires.
 | 
						|
</description>
 | 
						|
<syntax>DirectoryIndexRedirect on | off | permanent | temp | seeother |
 | 
						|
<var>3xx-code</var>
 | 
						|
</syntax>
 | 
						|
<default>DirectoryIndexRedirect off</default>
 | 
						|
<contextlist><context>server config</context><context>virtual host</context>
 | 
						|
<context>directory</context><context>.htaccess</context></contextlist>
 | 
						|
<override>Indexes</override>
 | 
						|
<compatibility>Disponible depuis la version 2.3.14</compatibility>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <p>Par défaut, c'est la page définie par la directive
 | 
						|
    <directive>DirectoryIndex</directive> qui est sélectionnée et
 | 
						|
    renvoyée de manière transparente au client. La directive
 | 
						|
    <directive>DirectoryIndexRedirect</directive> permet de rediriger le
 | 
						|
    client vers une ressource externe.</p>
 | 
						|
 | 
						|
    <example><title>Exemple</title>
 | 
						|
    <highlight language="config">
 | 
						|
      DirectoryIndexRedirect on
 | 
						|
      </highlight>
 | 
						|
    </example>
 | 
						|
 | 
						|
    <p>Une requête pour <code>http://example.com/docs/</code> se
 | 
						|
    solderait par une redirection temporaire vers
 | 
						|
    <code>http://example.com/docs/index.html</code> si cette ressource
 | 
						|
    existe.</p>
 | 
						|
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>DirectorySlash</name>
 | 
						|
<description>Activation/Désactivation de la redirection "slash de
 | 
						|
fin"</description>
 | 
						|
<syntax>DirectorySlash On|Off</syntax>
 | 
						|
<default>DirectorySlash On</default>
 | 
						|
<contextlist><context>server config</context><context>virtual
 | 
						|
host</context>
 | 
						|
<context>directory</context><context>.htaccess</context></contextlist>
 | 
						|
<override>Indexes</override>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <p>La directive <directive>DirectorySlash</directive> permet de
 | 
						|
    déterminer si <module>mod_dir</module> doit corriger ou non les URLs
 | 
						|
    pointant vers un répertoire.</p>
 | 
						|
 | 
						|
    <p>En général, si un utilisateur envoie une requête pour une
 | 
						|
    ressource sans slash de fin, cette ressource représentant un
 | 
						|
    répertoire, <module>mod_dir</module> le redirige vers la même
 | 
						|
    ressource, mais <em>en ajoutant</em> un slash de fin, et ceci pour
 | 
						|
    plusieurs bonnes raisons :</p>
 | 
						|
 | 
						|
    <ul>
 | 
						|
    <li>La requête de l'utilisateur contiendra finalement l'URL
 | 
						|
    canonique de la ressource</li>
 | 
						|
    <li><module>mod_autoindex</module> fonctionnera correctement. Comme
 | 
						|
    il n'indique pas le chemin dans le lien, le chemin de l'URL serait
 | 
						|
    incorrect.</li>
 | 
						|
    <li>La directive <directive
 | 
						|
    module="mod_dir">DirectoryIndex</directive> n'est évaluée
 | 
						|
    <em>que</em> pour les répertoires se terminant par un slash.</li>
 | 
						|
    <li>Les références à des URLs relatives dans les pages html
 | 
						|
    fonctionneront alors correctement.</li>
 | 
						|
    </ul>
 | 
						|
 | 
						|
    <p>Si vous ne souhaitez pas voir ces effets, <em>et</em> si
 | 
						|
    les raisons évoquées ci-dessus ne s'appliquent pas à vous, vous
 | 
						|
    pouvez désactiver la redirection comme indiqué ci-dessous.
 | 
						|
    Gardez cependant à l'esprit que ceci peut avoir des répercutions en
 | 
						|
    matière de sécurité.</p>
 | 
						|
 | 
						|
    <highlight language="config">
 | 
						|
# voir l'avertissement de sécurité ci-dessous !
 | 
						|
<Location /some/path>
 | 
						|
    DirectorySlash Off
 | 
						|
    SetHandler some-handler
 | 
						|
</Location>
 | 
						|
    </highlight>
 | 
						|
 | 
						|
    <note type="warning"><title>Avertissement de sécurité</title>
 | 
						|
    <p>La désactivation de la redirection "slash de fin" peut entraîner
 | 
						|
    la divulgation d'informations. Considérons la situation où
 | 
						|
    <module>mod_autoindex</module> est actif (<code>Options
 | 
						|
    +Indexes</code>), où la directive <directive module="mod_dir"
 | 
						|
    >DirectoryIndex</directive> a pour valeur une ressource valide (par
 | 
						|
    exemple <code>index.html</code>), et où aucun gestionnaire
 | 
						|
    particulier n'a été défini pour cette URL. Dans ce cas, une requête
 | 
						|
    avec slash de fin afficherait le contenu du fichier
 | 
						|
    <code>index.html</code> ; <strong>par contre, une requête sans slash
 | 
						|
    de fin afficherait un listing du contenu du
 | 
						|
    répertoire</strong>.</p>
 | 
						|
    </note>
 | 
						|
    <p>Notez aussi que certains navigateurs peuvent modifier par erreur
 | 
						|
    des requêtes POST en requêtes GET lors d'une redirection, les
 | 
						|
    données POST étant alors perdues.</p>
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
<directivesynopsis>
 | 
						|
<name>FallbackResource</name>
 | 
						|
<description>Définit une URL par défaut pour les requêtes qui ne ciblent
 | 
						|
aucun fichier</description>
 | 
						|
<syntax>FallbackResource disabled | <var>url-locale</var></syntax>
 | 
						|
<default>Désactivé - httpd renvoie un code d'erreur 404 (Not Found)</default>
 | 
						|
<contextlist><context>server config</context><context>virtual host</context>
 | 
						|
<context>directory</context><context>.htaccess</context></contextlist>
 | 
						|
<override>Indexes</override>
 | 
						|
<usage>
 | 
						|
    <p>Cette directive permet de définir un traitement pour toute URL
 | 
						|
    qui ne correspond à aucune ressource de votre système de fichiers,
 | 
						|
    et qui provoquerait sans cela l'envoi d'un code d'erreur HTTP 404
 | 
						|
    (Not Found).
 | 
						|
    Par exemple</p>
 | 
						|
    <highlight language="config">
 | 
						|
        FallbackResource /not-404.php
 | 
						|
    </highlight>
 | 
						|
    <p>fait en sorte que les requêtes ne correspondant à aucun fichier
 | 
						|
    soient traitées par <code>non-404.php</code>, sans affecter les
 | 
						|
    requêtes pour des fichiers existants.</p>
 | 
						|
    <p>Il est souvent souhaitable qu'un seul fichier ou ressource traite
 | 
						|
    toutes les requêtes à destination d'un répertoire
 | 
						|
    particulier, sauf pour les requêtes qui correspondent à un fichier
 | 
						|
    ou script existant. On y fait souvent référence sous le terme
 | 
						|
    'contrôleur frontal'.</p>
 | 
						|
    <p>Dans les versions plus anciennes de httpd, cet effet nécessitait
 | 
						|
    en général <module>mod_rewrite</module>, et l'utilisation des tests
 | 
						|
    conditionnels <code>-f</code> et <code>-d</code> pour vérifier
 | 
						|
    l'existence des fichiers et répertoires. Maintenant, une seule ligne
 | 
						|
    de configuration est nécessaire.</p>
 | 
						|
    <highlight language="config">
 | 
						|
        FallbackResource /index.php
 | 
						|
    </highlight>
 | 
						|
    <p>Les fichiers existants comme des images, des fichiers css, etc...
 | 
						|
    seront traités normalement.</p>
 | 
						|
    <p>Utilisez l'argument <code>disabled</code> pour désactiver cette
 | 
						|
    fonctionnalité si l'héritage d'un répertoire parent n'est pas
 | 
						|
    souhaité.</p>
 | 
						|
    <p>Pour un URI intermédiaire tel que
 | 
						|
    <em>http://example.com/blog/</em>, cet URI intermédiaire doit être
 | 
						|
    spécifié en tant que <var>url-locale</var> :</p>
 | 
						|
    <highlight language="config">
 | 
						|
<Directory /web/example.com/htdocs/blog>
 | 
						|
    FallbackResource /blog/index.php
 | 
						|
</Directory>
 | 
						|
<Directory /web/example.com/htdocs/blog/images>
 | 
						|
    FallbackResource disabled
 | 
						|
</Directory>
 | 
						|
    </highlight>
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
 | 
						|
</modulesynopsis>
 |