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