1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>Tutoriel du serveur HTTP Apache : fichiers .htaccess - Serveur Apache HTTP Version 2.5</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <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" />
12 <script src="../style/scripts/prettify.min.js" type="text/javascript">
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.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>
18 <p class="apache">Serveur Apache HTTP Version 2.5</p>
19 <img alt="" src="../images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
22 <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> > <a href="./">Recettes / Tutoriels</a></div><div id="page-content"><div id="preamble"><h1>Tutoriel du serveur HTTP Apache : fichiers .htaccess</h1>
24 <p><span>Langues Disponibles: </span><a href="../en/howto/htaccess.html" hreflang="en" rel="alternate" title="English"> en </a> |
25 <a href="../fr/howto/htaccess.html" title="Français"> fr </a> |
26 <a href="../ja/howto/htaccess.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
27 <a href="../ko/howto/htaccess.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
28 <a href="../pt-br/howto/htaccess.html" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a></p>
30 <div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
31 anglaise pour les changements récents.</div>
33 <p>Les fichiers <code>.htaccess</code> fournissent une méthode pour
34 modifier la configuration du serveur au niveau de chaque répertoire.</p>
36 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Fichiers .htaccess</a></li>
37 <li><img alt="" src="../images/down.gif" /> <a href="#what">Que sont ce fichiers, comment les utiliser ?</a></li>
38 <li><img alt="" src="../images/down.gif" /> <a href="#when">Quand doit-on (ne doit-on pas) utiliser
39 les fichiers .htaccess ?</a></li>
40 <li><img alt="" src="../images/down.gif" /> <a href="#how">Comment sont appliquées les directives ?</a></li>
41 <li><img alt="" src="../images/down.gif" /> <a href="#auth">Exemple d'authentification</a></li>
42 <li><img alt="" src="../images/down.gif" /> <a href="#ssi">Exemple d'Inclusion Côté Serveur (Server Side
43 Includes - SSI)</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#rewrite">Les règles de réécriture dans les fichiers .htaccess</a></li>
45 <li><img alt="" src="../images/down.gif" /> <a href="#cgi">Exemple de CGI</a></li>
46 <li><img alt="" src="../images/down.gif" /> <a href="#troubleshoot">Résolution des problèmes</a></li>
47 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
48 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
50 <h2><a name="related" id="related">Fichiers .htaccess</a></h2>
52 <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_authn_file.html">mod_authn_file</a></code></li><li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="../mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#accessfilename">AccessFileName</a></code></li><li><code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code></li><li><code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code></li><li><code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code></li><li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li><li><code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code></li><li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li></ul></td></tr></table>
53 <div class="note">Les fichiers <code>.htaccess</code> ne doivent être utilisés
54 que si vous n'avez pas accès au fichier de configuration du serveur
55 principal. L'utilisation des fichiers <code>.htaccess</code>
56 ralentit le fonctionnement de votre serveur HTTP Apache. Il est toujours
57 préférable de définir les directives que vous pouvez inclure dans un
58 fichier <code>.htaccess</code> dans une section <code class="directive"><a href="../mod/core.html#directory">Directory</a></code>, car elles produiront le
59 même effet avec de meilleures performances.</div>
60 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
62 <h2><a name="what" id="what">Que sont ce fichiers, comment les utiliser ?</a></h2>
65 <p>Les fichiers <code>.htaccess</code> (ou "fichiers de
66 configuration distribués") fournissent une méthode pour modifier la
67 configuration du serveur au niveau d'un répertoire. Un fichier,
68 contenant une ou plusieurs directives de configuration, est placé
69 dans un répertoire de documents particulier, et ses directives
70 s'appliquent à ce répertoire et à tous ses sous-répertoires.</p>
72 <div class="note"><h3>Note :</h3>
73 <p>Si vous voulez donner un autre nom à votre fichier
74 <code>.htaccess</code>, vous pouvez le faire en utilisant la
75 directive <code class="directive"><a href="../mod/core.html#accessfilename">AccessFileName</a></code>. Par
76 exemple, si vous préférez nommer votre fichier
77 <code>.config</code>, vous pouvez mettre ceci dans le fichier de
78 configuration de votre serveur :</p>
80 <pre class="prettyprint lang-config">AccessFileName .config</pre>
84 <p>En général, les fichiers <code>.htaccess</code> utilisent la même
85 syntaxe que les <a href="../configuring.html#syntax">fichiers de
86 configuration principaux</a>. Ce que vous pouvez mettre dans ces
87 fichier est déterminé par la directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>. Cette directive spécifie,
88 sous forme de catégories, quelles directives seront traitées si
89 elles se trouvent dans un fichier <code>.htaccess</code>. Si une
90 directive est permise dans un fichier <code>.htaccess</code> file,
91 la documentation de cette directive contiendra une section Override,
92 spécifiant quelle valeur doit prendre <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> pour que cette directive
95 <p>Par exemple, si vous regardez la documentation de la directive
96 <code class="directive"><a href="../mod/core.html#adddefaultcharset">AddDefaultCharset</a></code>, vous verrez
97 que cette dernière est permise dans les fichiers
98 <code>.htaccess</code> (Voir la ligne de contexte dans le résumé de
99 la directive). La ligne <a href="../mod/directive-dict.html#Context">Override</a> indique
100 <code>FileInfo</code>. Vous devez donc avoir au moins
101 <code>AllowOverride FileInfo</code> pour que cette directive soit
102 traitée dans les fichiers <code>.htaccess</code>.</p>
104 <div class="example"><h3>Exemple :</h3><table>
106 <td><a href="../mod/directive-dict.html#Context">Contexte :</a></td>
107 <td>configuration du serveur, serveur virtuel, directory, .htaccess</td>
111 <td><a href="../mod/directive-dict.html#Override">Override:</a></td>
116 <p>Si vous n'êtes pas sûr qu'une directive particulière soit permise
117 dans un fichier <code>.htaccess</code>, lisez la documentation de
118 cette directive, et consultez la ligne de contexte pour
120 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
121 <div class="section">
122 <h2><a name="when" id="when">Quand doit-on (ne doit-on pas) utiliser
123 les fichiers .htaccess ?</a></h2>
125 <p>En principe, vous ne devriez utiliser les fichiers
126 <code>.htaccess</code> que lorsque vous n'avez pas accès au fichier de
127 configuration du serveur principal. Par exemple, la fausse
129 selon laquelle l'authentification de l'utilisateur devrait toujours
130 être faite dans les fichiers <code>.htaccess</code> est très
131 répandue. Il est aussi souvent avancé, ces dernières
132 années, que les directives de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> doivent
133 être définies dans les fichiers <code>.htaccess</code>. Ceci est
134 tout simplement faux. Vous pouvez configurer
135 l'authentification des utilisateurs au niveau de la configuration du
136 serveur principal, et c'est en fait cette méthode qui doit être
137 privilégiée. De même, les directives de
138 <code>mod_rewrite</code> fonctionneront mieux, à de nombreux égards,
139 dans le contexte du serveur principal.</p>
141 <p>Les fichiers <code>.htaccess</code> ne devraient être utilisés
142 que dans le cas où les fournisseurs de contenu ont besoin de
143 modifier la configuration du serveur au niveau d'un répertoire, mais
144 ne possèdent pas l'accès root sur le système du serveur. Si
145 l'administrateur du serveur ne souhaite pas effectuer des
146 modifications de configuration incessantes, il peut être intéressant
147 de permettre aux utilisateurs isolés d'effectuer eux-mêmes ces
148 modifications par le biais de fichiers <code>.htaccess</code>. Ceci
149 est particulièrement vrai dans le cas où le fournisseur d'accès à
150 Internet héberge de nombreux sites d'utilisateurs sur un seul
151 serveur, et souhaite que ces utilisateurs puissent modifier
152 eux-mêmes leurs configurations.</p>
154 <p>Cependant et d'une manière générale, il vaut mieux éviter
155 d'utiliser les fichiers <code>.htaccess</code>. Tout élément de
156 configuration que vous pourriez vouloir mettre dans un fichier
157 <code>.htaccess</code>, peut aussi être mis, et avec la même
158 efficacité, dans une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> du fichier de configuration de
159 votre serveur principal.</p>
161 <p>Il y a deux raisons principales d'éviter l'utilisation des
162 fichiers <code>.htaccess</code>.</p>
164 <p>La première est liée aux performances. Lorsque la directive
165 <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> est définie de
166 façon à autoriser l'utilisation des fichiers <code>.htaccess</code>,
167 httpd va rechercher leur présence dans chaque répertoire. Ainsi,
168 permettre l'utilisation des fichiers <code>.htaccess</code> est déjà
169 en soi une cause de dégradation des performances, que vous utilisiez
170 effectivement ces fichiers ou non ! De plus, le fichier
171 <code>.htaccess</code> est chargé en mémoire chaque fois qu'un
172 document fait l'objet d'une requête.</p>
174 <p>Notez aussi que httpd doit rechercher les fichiers
175 <code>.htaccess</code> dans tous les répertoires de niveau
176 supérieur, afin de rassembler toutes les directives qui s'appliquent
177 au répertoire courant (Voir la section <a href="#how">comment sont
178 appliquées les directives</a>). Ainsi, si un fichier fait l'objet
179 d'une requête à partir d'un répertoire
180 <code>/www/htdocs/exemple</code>, httpd doit rechercher les
181 fichiers suivants :</p>
183 <div class="example"><p><code>
186 /www/htdocs/.htaccess<br />
187 /www/htdocs/exemple/.htaccess
190 <p>En conséquence, chaque accès à un fichier de ce répertoire
191 nécessite 4 accès au système de fichiers supplémentaires pour
192 rechercher des fichiers <code>.htaccess</code>, même si
193 aucun de ces fichiers n'est présent. Notez que cet exemple ne peut
194 se produire que si les fichiers <code>.htaccess</code> ont été
195 autorisés pour le répertoire <code>/</code>, ce qui est rarement le
198 <p>La seconde raison d'éviter l'utilisation des fichiers
199 <code>.htaccess</code> est liée à la sécurité. Si vous permettez aux
200 utilisateurs de modifier la configuration du serveur, il peut en
201 résulter des conséquences sur lesquelles vous n'aurez aucun
202 contrôle. Réfléchissez bien avant de donner ce privilège à vos
203 utilisateurs. Notez aussi que ne pas donner aux utilisateurs les
204 privilèges dont ils ont besoin va entraîner une augmentation des
205 demandes de support technique. Assurez-vous d'avoir informé
206 clairement vos utilisateurs du niveau de privilèges que vous leur
207 avez attribué. Indiquer exactement comment vous avez défini la
208 directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> et
209 diriger les utilisateurs vers la documentation correspondante vous
210 évitera bien des confusions ultérieures.</p>
212 <p>Notez que mettre un fichier <code>.htaccess</code> contenant une
213 directive dans un répertoire <code>/www/htdocs/exemple</code>
214 revient exactement au même que mettre la même directive dans une
215 section Directory <code><Directory /www/htdocs/exemple></code>
216 du fichier de configuration de votre serveur principal :</p>
218 <p>Fichier <code>.htaccess</code> dans
219 <code>/www/htdocs/exemple</code> :</p>
221 <div class="example"><h3>Contenu du fichier .htaccess dans
222 <code>/www/htdocs/exemple</code></h3><pre class="prettyprint lang-config">AddType text/example .exm</pre>
225 <div class="example"><h3>Section de votre fichier
226 <code>httpd.conf</code></h3><pre class="prettyprint lang-config"><Directory /www/htdocs/example>
227 AddType text/example .exm
228 </Directory></pre>
231 <p>Cependant, la perte de performances sera moindre si vous
232 définissez cette directive dans la configuration de
233 votre serveur principal, car cette dernière ne sera chargée qu'une
234 seule fois au moment du démarrage du serveur, alors qu'elle le sera
235 à chaque accès dans le cas d'un fichier <code>.htaccess</code>.</p>
237 <p>L'utilisation des fichiers <code>.htaccess</code> peut être
238 entièrement désactivée en définissant la directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> à <code>none</code> :</p>
240 <pre class="prettyprint lang-config">AllowOverride None</pre>
242 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
243 <div class="section">
244 <h2><a name="how" id="how">Comment sont appliquées les directives ?</a></h2>
246 <p>Les directives de configuration situées dans un fichier
247 <code>.htaccess</code> s'appliquent au répertoire dans lequel ce
248 fichier <code>.htaccess</code> se trouve, ainsi qu'à tous ses
249 sous-répertoires. Cependant, il est important de garder à l'esprit
250 qu'il peut y avoir des fichiers <code>.htaccess</code> dans les
251 répertoires de niveau supérieur. Les directives sont appliquées
252 selon l'ordre dans lequel elles sont rencontrées. Ainsi, les
253 directives d'un fichier <code>.htaccess</code> situé dans un
254 répertoire particulier peuvent écraser les directives se trouvant
255 dans des fichiers <code>.htaccess</code> situés à un niveau
256 supérieur dans l'arborescence des répertoires. Et ces dernières
257 peuvent elles-mêmes avoir écrasé des directives d'un fichier
258 <code>.htaccess</code> situé à un niveau encore plus haut, ou dans
259 le fichier de configuration du serveur principal.</p>
263 <p>Dans le répertoire <code>/www/htdocs/exemple1</code> se trouve un
264 fichier <code>.htaccess</code> contenant ce qui suit :</p>
266 <pre class="prettyprint lang-config">Options +ExecCGI</pre>
269 <p>Note : "<code>AllowOverride Options</code>" doit être présent
270 pour permettre l'utilisation de la directive "<code class="directive"><a href="../mod/core.html#options">Options</a></code>" dans les fichiers
271 <code>.htaccess</code>.</p>
273 <p>Dans le répertoire <code>/www/htdocs/exemple1/exemple2</code> se
274 trouve un fichier <code>.htaccess</code> contenant ce qui suit
277 <pre class="prettyprint lang-config">Options Includes</pre>
280 <p>Ainsi, à cause de ce second fichier <code>.htaccess</code> du
281 répertoire <code>/www/htdocs/exemple1/exemple2</code>, l'exécution
282 des CGI est interdite, car la dernière définition d'options
283 <code>Options Includes</code> écrase toute autre définition
284 d'options d'un fichier <code>.htaccess</code> situé dans un
285 répertoire de niveau supérieur.</p>
287 <h3><a name="merge" id="merge">Interactions entre les fichiers .htaccess
288 et les fichiers de configuration du serveur principal</a></h3>
290 <p>Comme indiqué dans la documentation sur les <a href="../sections.html">Sections de configuration</a>, les fichiers
291 <code>.htaccess</code> peuvent écraser les directives des sections
292 <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> pour
293 le répertoire correspondant, mais peuvent eux-mêmes être écrasés
294 par d'autres types de sections des fichiers de la
295 configuration principale. Cette possibilité peut s'avérer utile pour
296 forcer certaines configurations, même en cas de présence de l'option
297 libérale <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>. Par
298 exemple, pour interdire l'exécution de scripts en autorisant la
299 définition de toute autre option dans les fichiers
300 <code>.htaccess</code>, vous pouvez utiliser :</p>
302 <pre class="prettyprint lang-config"><Directory /www/htdocs>
307 Options +IncludesNoExec -ExecCGI<br />
308 </Location></pre>
311 <div class="note">Dans cet exemple, on considère que le chemin défini par la
312 directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> est
313 <code>/www/htdocs</code>.</div>
316 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
317 <div class="section">
318 <h2><a name="auth" id="auth">Exemple d'authentification</a></h2>
320 <p>Si vous accédez directement à ce point du document pour apprendre
321 à effectuer une authentification, il est important de noter ceci. Il
322 existe une fausse idée selon laquelle il serait nécessaire
323 d'utiliser les fichiers <code>.htaccess</code> pour implémenter
324 l'authentification par mot de passe. Ceci est tout simplement faux.
325 Pour y parvenir, il est préférable de mettre les directives
326 d'authentification dans une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> du fichier de configuration de
327 votre serveur principal, et les fichiers <code>.htaccess</code> ne
328 devraient être utilisés que dans le cas où vous n'avez pas accès au
329 fichier de configuration du serveur principal. Voir <a href="#when">ci-dessus</a> pour savoir dans quels cas vous devez ou
330 ne devez pas utiliser les fichiers <code>.htaccess</code>.</p>
332 <p>Ceci étant dit, si vous pensez que vous devez quand-même utiliser
333 un fichier <code>.htaccess</code>, vous pouvez utiliser la
334 configuration suivante :</p>
336 <p>Contenu du fichier <code>.htaccess</code> :</p>
338 <pre class="prettyprint lang-config">AuthType Basic
339 AuthName "Password Required"
340 AuthUserFile /www/passwords/password.file
341 AuthGroupFile /www/passwords/group.file
342 Require group admins</pre>
345 <p>Notez que <code>AllowOverride AuthConfig</code> doit être présent
346 pour que ces directives produisent leur effet.</p>
348 <p>Vous pouvez vous référer au <a href="auth.html">tutoriel sur
349 l'authentification</a> pour une description plus détaillée de
350 l'authentification et de l'autorisation.</p>
351 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
352 <div class="section">
353 <h2><a name="ssi" id="ssi">Exemple d'Inclusion Côté Serveur (Server Side
354 Includes - SSI)</a></h2>
356 <p>Les fichiers <code>.htaccess</code> sont aussi couramment
357 utilisés pour activer les SSI pour un répertoire particulier. Pour y
358 parvenir, on utilise les directives de configuration suivantes,
359 placées dans un fichier <code>.htaccess</code> enregistré dans le
360 répertoire considéré :</p>
362 <pre class="prettyprint lang-config">Options +Includes
363 AddType text/html shtml
364 AddHandler server-parsed shtml</pre>
367 <p>Notez que <code>AllowOverride Options</code> et <code>AllowOverride
368 FileInfo</code> doivent être tous les deux présents pour que ces
369 directives puissent produire leur effet.</p>
371 <p>Vous pouvez vous référer au <a href="ssi.html">tutoriel SSI</a>
372 pour une description plus détaillée des SSI.</p>
373 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
374 <div class="section">
375 <h2><a name="rewrite" id="rewrite">Les règles de réécriture dans les fichiers .htaccess</a></h2>
376 <p>Sivous utilisez des directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> dans un fichier
377 <code>.htaccess</code>, gardez à l'esprit que les choses sont légèrement
378 différentes dans un contexte de répertoire. En particulier, les règles
379 sont relatives au répertoire courant, et non à l'URI original. Considérez
380 les exemples suivants :</p>
382 <pre class="prettyprint lang-config"># Dans httpd.conf
383 RewriteRule ^/images/(.+)\.jpg /images/$1.png
385 # Dans un fichier .htaccess situé dans le répertoire racine de vos
387 RewriteRule ^images/(.+)\.jpg images/$1.png
389 # Dans un fichier .htaccess situé dans le répertoire images/
390 RewriteRule ^(.+)\.jpg $1.png</pre>
393 <p>On voit que si le fichier <code>.htaccess</code> se situe à la racine
394 de vos documents, le slash de tête est supprimé de la valeur de
395 remplacement spécifiée pour la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>, et que si le fichier
396 <code>.htaccess</code> se situe dans le répertoire <code>images</code>,
397 la chaîne <code>/images/</code> disparaît de cette même valeur de
398 remplacement. Il doit donc en être de même dans votre expression
401 <p>Veuillez vous référer à cette <a href="../rewrite/">documentation</a>
402 pour une étude détaillée de l'utilisation du module
403 <code>mod_rewrite</code>.</p>
405 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
406 <div class="section">
407 <h2><a name="cgi" id="cgi">Exemple de CGI</a></h2>
409 <p>En fin de compte, vous avez décidé d'utiliser un fichier
410 <code>.htaccess</code> pour permettre l'exécution des programmes CGI
411 dans un répertoire particulier. Pour y parvenir, vous pouvez
412 utiliser la configuration suivante :</p>
414 <pre class="prettyprint lang-config">Options +ExecCGI
415 AddHandler cgi-script cgi pl</pre>
418 <p>Alternativement, si vous souhaitez que tous les fichiers d'un
419 répertoire donné soient considérés comme des programmes CGI, vous
420 pouvez utiliser la configuration suivante :</p>
422 <pre class="prettyprint lang-config">Options +ExecCGI
423 SetHandler cgi-script</pre>
426 <p>Notez que <code>AllowOverride Options</code> et <code>AllowOverride
427 FileInfo</code> doivent être tous les deux présents pour que ces
428 directives puissent produire leur effet.</p>
430 <p>Vous pouvez vous référer au <a href="cgi.html">tutoriel CGI</a>
431 pour une description plus détaillée de la configuration et de la
432 proprammation CGI.</p>
434 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
435 <div class="section">
436 <h2><a name="troubleshoot" id="troubleshoot">Résolution des problèmes</a></h2>
438 <p>De nombreuses raisons peuvent être à l'origine du fait que
439 les directives que vous avez mises dans un fichier
440 <code>.htaccess</code> ne produisent pas l'effet désiré.</p>
442 <p>Le plus souvent, le problème vient du fait que la définition de
443 la directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>
444 ne permet pas l'activation des directives de votre fichier
445 <code>.htaccess</code>. Vérifiez si une directive
446 <code>AllowOverride None</code> n'affecte pas le répertoire où se
447 trouve votre fichier. Un bon test consiste à mettre des directives
448 dont la syntaxe est erronée dans votre ficher <code>.htaccess</code>
449 et de recharger la page. Si aucune erreur n'est générée par le
450 serveur, il est pratiquement certain qu'une directive
451 <code>AllowOverride None</code> affecte votre répertoire.</p>
453 <p>Par contre, si vous obtenez des erreurs de serveur lorsque vous
454 tentez d'accéder à des documents, consultez votre journal des
455 erreurs de httpd. Il vous indiquera probablement que la directive
456 utilisée dans votre fichier <code>.htaccess</code> n'est pas
459 <div class="example"><p><code>
460 [Fri Sep 17 18:43:16 2010] [alert] [client 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex not allowed here
462 <p>Cela signifie soit que vous utilisez une directive qui n'est
463 jamais permise dans les fichiers <code>.htaccess</code>, soit
464 que vous n'avez tout simplement pas défini la directive
465 <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> à un niveau
466 suffisant pour la directive que vous utilisez. Consultez la
467 documentation de cette directive pour déterminer quel cas
470 <p>Le journal des erreurs peut aussi vous signaler une erreur de
471 syntaxe dans l'usage de la directive elle-même.</p>
473 <div class="example"><p><code>
474 [Sat Aug 09 16:22:34 2008] [alert] [client 192.168.200.51] /var/www/html/.htaccess: RewriteCond: bad flag delimiters
477 <p>Dans ce cas, le message d'erreur sera spécifique à l'erreur
478 de syntaxe que vous avez commise.</p>
480 <div class="bottomlang">
481 <p><span>Langues Disponibles: </span><a href="../en/howto/htaccess.html" hreflang="en" rel="alternate" title="English"> en </a> |
482 <a href="../fr/howto/htaccess.html" title="Français"> fr </a> |
483 <a href="../ja/howto/htaccess.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
484 <a href="../ko/howto/htaccess.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
485 <a href="../pt-br/howto/htaccess.html" hreflang="pt-br" rel="alternate" title="Português (Brasil)"> pt-br </a></p>
486 </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 again 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 Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
487 <script type="text/javascript"><!--//--><![CDATA[//><!--
488 var comments_shortname = 'httpd';
489 var comments_identifier = 'http://httpd.apache.org/docs/trunk/howto/htaccess.html';
491 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
492 d.write('<div id="comments_thread"><\/div>');
493 var s = d.createElement('script');
494 s.type = 'text/javascript';
496 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
497 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
500 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
502 })(window, document);
503 //--><!]]></script></div><div id="footer">
504 <p class="apache">Copyright 2015 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
505 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.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[//><!--
506 if (typeof(prettyPrint) !== 'undefined') {