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