2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1081659 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <modulesynopsis metafile="mod_dir.xml.meta">
27 <description>Permet la redirection des adresses se terminant par un
28 répertoire sans slash de fin et la mise à disposition des fichiers index
29 de répertoire</description>
31 <sourcefile>mod_dir.c</sourcefile>
32 <identifier>dir_module</identifier>
35 <p>L'index d'un répertoire peut provenir de deux sources :</p>
38 <li>Un fichier écrit par l'utilisateur, dont le nom, en général
39 appelé <code>index.html</code>, peut être défini à l'aide de la
40 directive <directive module="mod_dir">DirectoryIndex</directive>
41 fournie par le module <module>mod_dir</module>.</li>
43 <li>Un listing généré par le serveur, par l'intermédiaire du
44 module <module>mod_autoindex</module>.</li>
46 <p>Les deux fonctions sont bien distinctes, si bien que vous pouvez
47 supprimer (ou remplacer) la génération automatique d'index, si vous
50 <p>Une redirection "slash de fin" est effectuée lorsque le serveur
51 reçoit une requête pour une URL du style
52 <code>http://nom-serveur/foo/nom-rep</code> où <code>nom-rep</code>
53 est le nom d'un répertoire. Comme les répertoires nécessitent un slash de
54 fin, <module>mod_dir</module> effectue une redirection vers
55 <code>http://nom-serveur/foo/nom-rep/</code>.</p>
59 <name>DirectoryIndex</name>
60 <description>Liste des fichiers ressources à rechercher lorsque le
61 client envoie une requête pour un répertoire</description>
62 <syntax>DirectoryIndex
63 disabled | <var>url locale</var> [<var>url locale</var>] ...</syntax>
64 <default>DirectoryIndex index.html</default>
65 <contextlist><context>server config</context><context>virtual host</context>
66 <context>directory</context><context>.htaccess</context></contextlist>
67 <override>Indexes</override>
70 <p>La directive <directive>DirectoryIndex</directive> permet de
71 définir une liste de fichiers ressources à rechercher lorsqu'un
72 client envoie une requête pour l'index d'un répertoire, en ajoutant
73 un '/' à la fin du nom de ce dernier. <var>url locale</var> est
74 l'URL (codée avec caractères '%') d'un document du serveur, relative
75 au répertoire faisant l'objet de la requête ; il s'agit en général
76 du nom d'un fichier situé dans le répertoire. Si plusieurs URLs sont
77 fournies, le serveur renverra la première d'entre elles qui
78 correspond à une ressource existante. Si aucune ressource ne
79 correspond à la liste des URLs spécifiées, et si l'option
80 <code>Indexes</code> est définie, le serveur générera son propre
81 listing du répertoire.</p>
83 <example><title>Exemple</title>
84 DirectoryIndex index.html
87 <p>Avec cette configuration, une requête pour l'URL
88 <code>http://mon-serveur/docs/</code> renverrait au client la
89 ressource <code>http://mon-serveur/docs/index.html</code> si elle
90 existe, ou provoquerait la génération du listing du répertoire si la
91 ressource n'existe pas.</p>
93 <p>Notez qu'il n'est pas nécessaire que les documents soient
94 relatifs au répertoire ;</p>
97 DirectoryIndex index.html index.txt /cgi-bin/index.pl
100 <p>provoquerait l'exécution du script CGI
101 <code>/cgi-bin/index.pl</code> si aucun des fichiers
102 <code>index.html</code> ou <code>index.txt</code> n'existe dans le
103 répertoire considéré.</p>
105 <p>La spécification du seul argument "disabled" empêche
106 <module>mod_dir</module> de rechercher un index. Un argument
107 "disabled" sera interprété de manière littérale si d'autres
108 arguments sont présents avant ou après lui, même s'ils sont
109 eux-mêmes des arguments "disabled".</p>
115 <name>DirectorySlash</name>
116 <description>Activation/Désactivation de la redirection "slash de
118 <syntax>DirectorySlash On|Off</syntax>
119 <default>DirectorySlash On</default>
120 <contextlist><context>server config</context><context>virtual
122 <context>directory</context><context>.htaccess</context></contextlist>
123 <override>Indexes</override>
124 <compatibility>Disponible depuis le version 2.0.51
125 d'Apache</compatibility>
128 <p>La directive <directive>DirectorySlash</directive> permet de
129 déterminer si <module>mod_dir</module> doit corriger ou non les URLs
130 pointant vers un répertoire.</p>
132 <p>En général, si un utilisateur envoie une requête pour une
133 ressource sans slash de fin, cette ressource représentant un
134 répertoire, <module>mod_dir</module> le redirige vers la même
135 ressource, mais <em>en ajoutant</em> un slash de fin, et ceci pour
136 plusieurs bonnes raisons :</p>
139 <li>La requête de l'utilisateur contiendra finalement l'URL
140 canonique de la ressource</li>
141 <li><module>mod_autoindex</module> fonctionnera correctement. Comme
142 il n'indique pas le chemin dans le lien, le chemin de l'URL serait
144 <li>La directive <directive
145 module="mod_dir">DirectoryIndex</directive> n'est évaluée
146 <em>que</em> pour les répertoires se terminant par un slash.</li>
147 <li>Les références à des URLs relatives dans les pages html
148 fonctionneront alors correctement.</li>
151 <p>Si vous ne souhaitez pas voir ces effets, <em>et</em> si
152 les raisons évoquées ci-dessus ne s'appliquent pas à vous, vous
153 pouvez désactiver la redirection comme indiqué ci-dessous.
154 Gardez cependant à l'esprit que ceci peut avoir des répercutions en
155 matière de sécurité.</p>
158 # voir l'avertissement de sécurité ci-dessous !<br />
159 <Location /un/chemin><br />
161 DirectorySlash Off<br />
162 SetHandler un-gestionnaire<br />
167 <note type="warning"><title>Avertissement de sécurité</title>
168 <p>La désactivation de la redirection "slash de fin" peut entraîner
169 la divulgation d'informations. Considérons la situation où
170 <module>mod_autoindex</module> est actif (<code>Options
171 +Indexes</code>), où la directive <directive module="mod_dir"
172 >DirectoryIndex</directive> a pour valeur une ressource valide (par
173 exemple <code>index.html</code>), et où aucun gestionnaire
174 particulier n'a été défini pour cette URL. Dans ce cas, une requête
175 avec slash de fin afficherait le contenu du fichier
176 <code>index.html</code> ; <strong>par contre, une requête sans slash
177 de fin afficherait un listing du contenu du
178 répertoire</strong>.</p>
183 <name>FallbackResource</name>
184 <description>Définit une URL par défaut pour les requêtes qui ne ciblent
185 aucun fichier</description>
186 <syntax>FallbackResource <var>url-locale</var></syntax>
187 <default>Aucune - httpd renvoie un code d'erreur 404 (Not Found)</default>
188 <contextlist><context>server config</context><context>virtual host</context>
189 <context>directory</context><context>.htaccess</context></contextlist>
190 <override>Indexes</override>
192 <p>Cette directive permet de définir un traitement pour toute URL
193 qui ne correspond à aucune ressource de votre système de fichiers,
194 et qui provoquerait sans cela l'envoi d'un code d'erreur HTTP 404
198 <code>FallbackResource /not-404.php</code>
200 <p>fait en sorte que les requêtes ne correspondant à aucun fichier
201 soient traitées par <code>non-404.php</code>, sans affecter les
202 requêtes pour des fichiers existants.</p>
203 <p>Il est souvent souhaitable qu'un seul fichier ou ressource traite
204 toutes les requêtes à destination d'un répertoire
205 particulier, sauf pour les requêtes qui correspondent à un fichier
206 ou script existant. On y fait souvent référence sous le terme
207 'contrôleur frontal'.</p>
208 <p>Dans les versions plus anciennes de httpd, cet effet nécessitait
209 en général <module>mod_rewrite</module>, et l'utilisation des tests
210 conditionnels <code>-f</code> et <code>-d</code> pour vérifier
211 l'existence des fichiers et répertoires. Maintenant, une seule ligne
212 de configuration est nécessaire.</p>
214 <code>FallbackResource /index.php</code>
216 <p>Les fichiers existants comme des images, des fichiers css, etc...
217 seront traités normalement.</p>
218 <p>Pour un URI intermédiaire tel que
219 <em>http://example.com/blog/</em>, cet URI intermédiaire doit être
220 spécifié en tant que <var>url-locale</var> :</p>
223 <Directory /web/example.com/htdocs/blog><br />
225 FallbackResource /blog/index.php<br />