2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1147329 -->
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://example.com/docs/</code> renverrait au client la
89 ressource <code>http://example.com/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>DirectoryIndexRedirect</name>
116 <description>Définit une redirection externe pour les index de
119 <syntax>DirectoryIndexRedirect on | off | permanent | temp | seeother |
122 <default>DirectoryIndexRedirect off</default>
123 <contextlist><context>server config</context><context>virtual host</context>
124 <context>directory</context><context>.htaccess</context></contextlist>
125 <override>Indexes</override>
126 <compatibility>Disponible depuis la version 2.3.14</compatibility>
129 <p>Par défaut, c'est la page définie par la directive
130 <directive>DirectoryIndex</directive> qui est sélectionnée et
131 renvoyée de manière transparente au client. La directive
132 <directive>DirectoryIndexRedirect</directive> permet de rediriger le
133 client vers une ressource externe.</p>
135 <example><title>Exemple</title>
136 DirectoryIndexRedirect on
139 <p>Une requête pour <code>http://example.com/docs/</code> se
140 solderait par une redirection temporaire vers
141 <code>http://example.com/docs/index.html</code> si cette ressource
148 <name>DirectorySlash</name>
149 <description>Activation/Désactivation de la redirection "slash de
151 <syntax>DirectorySlash On|Off</syntax>
152 <default>DirectorySlash On</default>
153 <contextlist><context>server config</context><context>virtual
155 <context>directory</context><context>.htaccess</context></contextlist>
156 <override>Indexes</override>
157 <compatibility>Disponible depuis le version 2.0.51
158 d'Apache</compatibility>
161 <p>La directive <directive>DirectorySlash</directive> permet de
162 déterminer si <module>mod_dir</module> doit corriger ou non les URLs
163 pointant vers un répertoire.</p>
165 <p>En général, si un utilisateur envoie une requête pour une
166 ressource sans slash de fin, cette ressource représentant un
167 répertoire, <module>mod_dir</module> le redirige vers la même
168 ressource, mais <em>en ajoutant</em> un slash de fin, et ceci pour
169 plusieurs bonnes raisons :</p>
172 <li>La requête de l'utilisateur contiendra finalement l'URL
173 canonique de la ressource</li>
174 <li><module>mod_autoindex</module> fonctionnera correctement. Comme
175 il n'indique pas le chemin dans le lien, le chemin de l'URL serait
177 <li>La directive <directive
178 module="mod_dir">DirectoryIndex</directive> n'est évaluée
179 <em>que</em> pour les répertoires se terminant par un slash.</li>
180 <li>Les références à des URLs relatives dans les pages html
181 fonctionneront alors correctement.</li>
184 <p>Si vous ne souhaitez pas voir ces effets, <em>et</em> si
185 les raisons évoquées ci-dessus ne s'appliquent pas à vous, vous
186 pouvez désactiver la redirection comme indiqué ci-dessous.
187 Gardez cependant à l'esprit que ceci peut avoir des répercutions en
188 matière de sécurité.</p>
191 # voir l'avertissement de sécurité ci-dessous !<br />
192 <Location /un/chemin><br />
194 DirectorySlash Off<br />
195 SetHandler un-gestionnaire<br />
200 <note type="warning"><title>Avertissement de sécurité</title>
201 <p>La désactivation de la redirection "slash de fin" peut entraîner
202 la divulgation d'informations. Considérons la situation où
203 <module>mod_autoindex</module> est actif (<code>Options
204 +Indexes</code>), où la directive <directive module="mod_dir"
205 >DirectoryIndex</directive> a pour valeur une ressource valide (par
206 exemple <code>index.html</code>), et où aucun gestionnaire
207 particulier n'a été défini pour cette URL. Dans ce cas, une requête
208 avec slash de fin afficherait le contenu du fichier
209 <code>index.html</code> ; <strong>par contre, une requête sans slash
210 de fin afficherait un listing du contenu du
211 répertoire</strong>.</p>
216 <name>FallbackResource</name>
217 <description>Définit une URL par défaut pour les requêtes qui ne ciblent
218 aucun fichier</description>
219 <syntax>FallbackResource <var>url-locale</var></syntax>
220 <default>Aucune - httpd renvoie un code d'erreur 404 (Not Found)</default>
221 <contextlist><context>server config</context><context>virtual host</context>
222 <context>directory</context><context>.htaccess</context></contextlist>
223 <override>Indexes</override>
225 <p>Cette directive permet de définir un traitement pour toute URL
226 qui ne correspond à aucune ressource de votre système de fichiers,
227 et qui provoquerait sans cela l'envoi d'un code d'erreur HTTP 404
231 <code>FallbackResource /not-404.php</code>
233 <p>fait en sorte que les requêtes ne correspondant à aucun fichier
234 soient traitées par <code>non-404.php</code>, sans affecter les
235 requêtes pour des fichiers existants.</p>
236 <p>Il est souvent souhaitable qu'un seul fichier ou ressource traite
237 toutes les requêtes à destination d'un répertoire
238 particulier, sauf pour les requêtes qui correspondent à un fichier
239 ou script existant. On y fait souvent référence sous le terme
240 'contrôleur frontal'.</p>
241 <p>Dans les versions plus anciennes de httpd, cet effet nécessitait
242 en général <module>mod_rewrite</module>, et l'utilisation des tests
243 conditionnels <code>-f</code> et <code>-d</code> pour vérifier
244 l'existence des fichiers et répertoires. Maintenant, une seule ligne
245 de configuration est nécessaire.</p>
247 <code>FallbackResource /index.php</code>
249 <p>Les fichiers existants comme des images, des fichiers css, etc...
250 seront traités normalement.</p>
251 <p>Pour un URI intermédiaire tel que
252 <em>http://example.com/blog/</em>, cet URI intermédiaire doit être
253 spécifié en tant que <var>url-locale</var> :</p>
256 <Directory /web/example.com/htdocs/blog><br />
258 FallbackResource /blog/index.php<br />