]> granicus.if.org Git - apache/blob - docs/manual/rewrite/intro.html.fr
Rebuild.
[apache] / docs / manual / rewrite / intro.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>Introduction au module Apache mod_rewrite - 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="./">Rewrite</a></div><div id="page-content"><div id="preamble"><h1>Introduction au module Apache mod_rewrite</h1>
25 <div class="toplang">
26 <p><span>Langues Disponibles: </span><a href="../en/rewrite/intro.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
27 <a href="../fr/rewrite/intro.html" title="Français">&nbsp;fr&nbsp;</a></p>
28 </div>
29
30 <p>Ce document est un complément à la <a href="../mod/mod_rewrite.html">documentation de référence</a> du module
31 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Il décrit les concepts de base dont la
32 connaissance est nécessaire pour l'utilisation de
33 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. D'autres documents entrent d'avantage dans
34 les détails, mais celui-ci devrait aider le débutant à se mouiller les
35 pieds.
36 </p>
37 </div>
38 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li>
39 <li><img alt="" src="../images/down.gif" /> <a href="#regex">Expressions rationnelles</a></li>
40 <li><img alt="" src="../images/down.gif" /> <a href="#rewriterule">Les bases des règles de réécriture</a></li>
41 <li><img alt="" src="../images/down.gif" /> <a href="#flags">Drapeaux de réécriture</a></li>
42 <li><img alt="" src="../images/down.gif" /> <a href="#rewritecond">Conditions de réécriture</a></li>
43 <li><img alt="" src="../images/down.gif" /> <a href="#rewritemap">Tables de réécriture</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#htaccess">Fichiers .htaccess</a></li>
45 </ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="../mod/mod_rewrite.html">Documentation du
46 module mod_rewrite</a></li><li><a href="remapping.html">Redirection and remise en
47 correspondance</a></li><li><a href="access.html">Contrôle d'accès</a></li><li><a href="vhosts.html">Serveurs virtuels</a></li><li><a href="proxy.html">Mise en cache</a></li><li><a href="rewritemap.html">Utilisation de RewriteMap</a></li><li><a href="advanced.html">Techniques avancées</a></li><li><a href="avoid.html">Quand ne pas utiliser mod_rewrite</a></li><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>
49 <div class="section">
50 <h2><a name="introduction" id="introduction">Introduction</a><a title="Lien permanent" href="#introduction" class="permalink">&para;</a></h2>
51 <p>Le module Apache <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> est un module puissant
52 et sophistiqué qui permet la réécriture des URLs. Grâce à lui, vous
53 pouvez effectuer quasiment tous les types de réécriture d'URLs dont vous
54 avez besoin. Il est cependant assez complexe, et peut paraître
55 intimidant au débutant. Certains ont aussi tendance à traiter les
56 règles de réécriture comme des incantations magiques, et à les utiliser
57 sans vraiment comprendre leur manière d'agir.</p>
58
59 <p>Ce document a pour ambition d'être suffisamment explicite pour
60 permettre la compréhension, et non la copie en aveugle, de ce qui suit.
61 </p>
62
63 <p>Gardez à l'esprit que de nombreuses tâches de manipulation d'URLs
64 courantes n'ont pas besoin de la puissance et de la complexité de
65 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Pour les tâches simples, voir
66 <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> et la documentation sur la <a href="../urlmapping.html">Mise en correspondance des URLs avec le
67 système de fichiers</a>.</p>
68
69 <p>Enfin, avant de procéder, assurez-vous d'avoir configuré le niveau de
70 journalisation de <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> à un des niveaux de trace
71 via la directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code>. Bien que
72 ceci risque de vous submerger sous une énorme quantité d'informations,
73 le débogage des problèmes avec la configuration de
74 <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> est à ce prix car vous verrez alors
75 exactement comment chaque règle est traitée.</p>
76
77 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
78 <div class="section">
79 <h2><a name="regex" id="regex">Expressions rationnelles</a><a title="Lien permanent" href="#regex" class="permalink">&para;</a></h2>
80
81 <p>mod_rewrite utilise le vocabulaire des <a href="http://pcre.org/">Expressions rationnelles compatibles Perl</a>.
82 Ce document n'a pas pour prétention d'être une référence détaillée des
83 expressions rationnelles. A cet effet, nous recommandons les <a href="http://pcre.org/pcre.txt">pages de manuel de PCRE</a>, la <a href="http://perldoc.perl.org/perlre.html">page de manuel des
84 expressions rationnelles Perl</a>, et l'ouvrage <a href="http://shop.oreilly.com/product/9780596528126.do">Mastering
85 Regular Expressions, by Jeffrey Friedl</a>.</p>
86
87 <p>Dans ce document, nous avons pour but de vous fournir suffisamment de
88 vocabulaire des expressions rationnelles pour vous mettre le pied à
89 l'étrier, sans être dépassé, en espérant que les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> vous apparaîtront comme des
90 formules scientifiques, plutôt que comme des incantations magiques.</p>
91
92 <h3><a name="regexvocab" id="regexvocab">Vocabulaire des expressions rationnelles</a></h3>
93
94 <p>Vous trouverez dans ce qui suit le minimum à connaître pour être en
95 mesure d'écrire des expressions rationnelles et des règles <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. Ceci ne représente
96 certainement pas un vocabulaire des expressions rationnelles complet,
97 mais constitue un bon point de départ, et devrait vous aider à
98 déchiffrer les expressions rationnelles simples, et à écrire vos propres
99 expressions.</p>
100
101 <table>
102 <tr>
103 <th>Motif</th>
104 <th>Signification</th>
105 <th>Exemple</th>
106 </tr>
107
108 <tr><td><code>.</code></td><td>Correspond à tout caractère unique
109 </td><td><code>c.t</code> correspondra à <code>cat</code>,
110 <code>cot</code>, <code>cut</code>, etc.</td></tr>
111 <tr><td><code>+</code></td><td>Répète le caractère de correspondance
112 précédent une ou plusieurs fois</td>
113 <td><code>a+</code> correspond à <code>a</code>, <code>aa</code>,
114 <code>aaa</code>, etc.</td></tr>
115 <tr><td><code>*</code></td><td>Répète le caractère de correspondance
116 précédent zéro ou plusieurs fois</td>
117 <td><code>a*</code> correspond à tout ce à quoi correspond
118 <code>a+</code>, mais correspond aussi à la chaîne vide.</td></tr>
119 <tr><td><code>?</code></td><td>Rend la correspondance optionnelle.</td><td>
120 <code>colou?r</code> correspondra à <code>color</code> et <code>colour</code>.</td>
121 </tr>
122 <tr><td><code>^</code></td><td>Appelé ancrage, correspond au début de la
123 chaîne</td>
124 <td><code>^a</code> correspond à une chaîne qui commence par
125 <code>a</code></td></tr>
126 <tr><td><code>$</code></td><td>L'autre ancrage, correspond à la fin de
127 la chaîne.</td>
128 <td><code>a$</code> correspond à une chaîne qui se termine par
129 <code>a</code>.</td></tr>
130 <tr><td><code>( )</code></td><td>Regroupe plusieurs caractères en une
131 seule entité, et conserve une correspondance à des fins d'utilisation
132 dans une référence arrière.</td>
133 <td><code>(ab)+</code>
134 correspond à <code>ababab</code> - à savoir, le <code>+</code>
135 s'applique au groupe.
136 Pour plus de détails sur les références arrières, voir <a href="#InternalBackRefs">ci-dessous</a>.</td></tr>
137 <tr><td><code>[ ]</code></td><td>Une classe de caractères - correspond à
138 un des caractères de la classe</td>
139 <td><code>c[uoa]t</code> correspond à <code>cut</code>,
140 <code>cot</code> ou <code>cat</code>.</td></tr>
141 <tr><td><code>[^ ]</code></td><td>Négation de la classe de caractères -
142 correspond à tout caractère ne faisant pas partie de la classe</td>
143 <td><code>c[^/]t</code> correspond à <code>cat</code> ou
144 <code>c=t</code> mais pas à <code>c/t</code></td></tr>
145 </table>
146
147 <p>Avec <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, le caractère <code>!</code> peut
148 préfixer une expression rationnelle afin d'en exprimer la négation.
149 Autrement dit, une chaîne ne correspondra que si elle ne correspond pas
150 à l'expression située après le <code>!</code>.</p>
151
152
153
154 <h3><a name="InternalBackRefs" id="InternalBackRefs">Disponibilité des références
155 arrières dans les expressions rationnelles</a></h3>
156
157       <p>Vous devez vous souvenir d'une chose importante : chaque fois
158       que vous utilisez des parenthèses dans un <em>Modèle</em> ou dans
159       un des <em>modèles de conditions</em>, des références arrières
160       sont créées en interne et peuvent être rappelées via les chaînes
161       <code>$N</code> et <code>%N</code> (voir ci-dessous). Ces
162       références sont disponibles lors de la
163       création de la chaîne de substitution d'une directive
164       <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> ou de la
165       chaîne de test d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>.</p>
166       <p>Les captures dans les modèles de directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sont paradoxalement
167       disponibles dans toutes les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> qui précèdent, car
168       les expressions des directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> sont évaluées avant
169       les conditions individuelles.</p>
170       
171       <p>La figure 1 montre à quels endroits les
172       références arrières sont suceptibles
173       d'être développées, et illustre le flux des comparaisons
174       effectuées par les règles RewriteRule et
175       RewriteCond. Dans les chapitres suivants, nous examinerons comment
176       utiliser ces références arrières, donc ne vous affolez pas si
177       elles vous paraissent un peu exotiques au premier abord.</p>
178
179 <p class="figure">
180       <img src="../images/rewrite_backreferences.png" alt="Flux des comparaisons effectuées par les règles RewriteRule       et RewriteCond" /><br />
181       <dfn>Figure 1 :</dfn> Le cheminement d'une référence arrière à
182       travers une règle.<br />
183       Dans cet exemple, une requête pour <code>/test/1234</code> serait
184       transformée en
185       <code>/admin.foo?page=test&amp;id=1234&amp;host=admin.example.com</code>.
186 </p>
187
188
189 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
190 <div class="section">
191 <h2><a name="rewriterule" id="rewriterule">Les bases des règles de réécriture</a><a title="Lien permanent" href="#rewriterule" class="permalink">&para;</a></h2>
192 <p>Une règle de réécriture <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> est constituée de trois
193 arguments séparés par des espaces. Les arguments sont :</p>
194 <ol>
195 <li><var>Modèle</var>: le modèle des URLs auxquelles la règle doit
196 s'appliquer;</li>
197 <li><var>Substitution</var>: vers quoi la requête correspondante doit être
198 transformée;</li>
199 <li><var>[drapeaux]</var>: options affectant la requête réécrite.</li>
200 </ol>
201
202 <p>Le <var>Modèle</var> est une <a href="#regex">expression
203 rationnelle</a>. Au sein de la première règle de réécriture, ou jusqu'à
204 ce qu'une substitution survienne, elle est comparée au chemin de
205 l'URL de la requête entrante (la
206 partie située après le nom d'hôte mais avant tout point d'interrogation
207 qui indique le début d'une chaîne de paramètres de
208 requête) ou, dans un contexte de répertoire, au chemin de la
209 requête relativement au répertoire pour lequel la
210 règle est définie. Lorsqu'une substitution a eu lieu, les
211 règles suivantes effectuent leurs comparaisons par rapport à la valeur
212 substituée.</p>
213
214 <p class="figure">
215       <img src="../images/syntax_rewriterule.png" alt="Syntaxe de la directive RewriteRule" /><br />
216       <dfn>Figure 2 :</dfn> Syntaxe de la directive RewriteRule.
217 </p>
218
219 <p>La chaîne de <var>Substitution</var> peut, quant à elle, être de
220 trois types :</p>
221
222 <dl>
223 <dt>Un chemin complet du système de fichiers vers une ressource</dt>
224 <dd>
225 <pre class="prettyprint lang-config">RewriteRule "^/jeux" "/usr/local/jeux/web"</pre>
226
227 <p>Ceci peut faire correspondre une requête à toute localisation voulue de
228 votre système de fichiers, un peu comme la directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>.</p>
229 </dd>
230
231 <dt>Un chemin web vers une ressource</dt>
232 <dd>
233 <pre class="prettyprint lang-config">RewriteRule "^/foo$" "/bar"</pre>
234
235 <p>Si la directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> a
236 pour valeur <code>/usr/local/apache2/htdocs</code>, cette règle va faire
237 correspondre les requêtes pour <code>http://example.com/foo</code> au
238 chemin <code>/usr/local/apache2/htdocs/bar</code>.</p>
239 </dd>
240
241 <dt>Une URL absolue</dt>
242 <dd>
243 <pre class="prettyprint lang-config">RewriteRule "^/produits/vues$" "http://site2.example.com/voirproduits.html" [R]</pre>
244
245 <p>Ceci informe le client qu'il doit effectuer une nouvelle requête vers
246 l'URL spécifiée.</p>
247 </dd>
248 </dl>
249
250 <p>La chaîne de <var>Substitution</var> peut aussi contenir des
251 <em>références arrières</em> vers des parties du chemin d'URL entrant
252 correspondant au <var>Modèle</var>. Considérons ce qui suit :</p>
253 <pre class="prettyprint lang-config">RewriteRule "^/produits/(.*)/view$" "/var/web/produitsdb/$1"</pre>
254
255 <p>La variable <code>$1</code> sera remplacée par tout texte
256 correspondant à l'expression située entre les parenthèses dans le
257 <var>Modèle</var>. Par exemple, une requête pour
258 <code>http://example.com/produits/r14df/vue</code> correspondra au
259 chemin <code>/var/web/produitsdb/r14df</code>.</p>
260
261 <p>S'il y a plus d'une expression entre parenthèses, elle seront
262 accessibles selon leur ordre d'apparition via les variables
263 <code>$1</code>, <code>$2</code>, <code>$3</code>, etc...</p>
264
265
266 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
267 <div class="section">
268 <h2><a name="flags" id="flags">Drapeaux de réécriture</a><a title="Lien permanent" href="#flags" class="permalink">&para;</a></h2>
269 <p>Le comportement d'une règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> peut être modifié par la
270 présence d'un ou plusieurs drapeaux en fin de règle. Par exemple, les
271 conditions de correspondance d'une règle peuvent être rendues
272 insensibles à la casse par la présence du drapeau <code>[NC]</code> :
273 </p>
274 <pre class="prettyprint lang-config">RewriteRule "^puppy.html" "petitchien.html" [NC]</pre>
275
276
277 <p>Pour une liste des drapeaux disponibles, leurs significations, et des
278 exemples, voir le document <a href="flags.html">Drapeaux de
279 réécriture</a>.</p>
280
281 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
282 <div class="section">
283 <h2><a name="rewritecond" id="rewritecond">Conditions de réécriture</a><a title="Lien permanent" href="#rewritecond" class="permalink">&para;</a></h2>
284 <p>Il est possible d'utiliser une ou plusieurs directives <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> pour restreindre les types
285 de requêtes auxquelles devra s'appliquer la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> suivante. Le premier
286 argument est une variable décrivant une caractéristique de la requête,
287 le second argument est une <a href="#regex">expression rationnelle</a>
288 qui doit correspondre à la variable, et un troisième argument optionnel
289 est une liste de drapeaux qui modifient la manière dont la
290 correspondance est évaluée.</p>
291
292 <p class="figure">
293       <img src="../images/syntax_rewritecond.png" alt="Syntaxe de la directive RewriteCond" /><br />
294       <dfn>Figure 3 :</dfn> Syntaxe de la directive RewriteCond
295 </p>
296
297
298 <p>Par exemple, pour renvoyer toutes les requêtes en provenance d'une
299 certaine tranche d'adresses IP vers un autre serveur, vous pouvez
300 utiliser :</p>
301 <pre class="prettyprint lang-config">RewriteCond "%{REMOTE_ADDR}" "^10\.2\."
302 RewriteRule "(.*)" "http://intranet.example.com$1"</pre>
303
304
305 <p>Si vous spécifiez plus d'une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>, ces directives
306 doivent toutes être satisfaites pour que la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> suivante s'applique. Par exemple,
307 pour interdire les requêtes qui contiennent le mot "hack" dans la chaîne
308 de requête, sauf si elles contiennent aussi un cookie contenant le mot
309 "go", vous pouvez utiliser :</p>
310 <pre class="prettyprint lang-config">RewriteCond "%{QUERY_STRING}" "hack"
311 RewriteCond "%{HTTP_COOKIE}" "!go"
312 RewriteRule "." "-" [F]</pre>
313
314 <p>Notez que le point d'exclamation indique une correspondance négative
315 ; ainsi, la règle n'est appliquée que si le cookie ne contient pas "go"</p>
316
317 <p>Les correspondances dans les expressions rationnelles contenues dans
318 les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code>
319 peuvent constituer des parties de la chaîne de <var>Substitution</var>
320 de la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> via
321 les variables <code>%1</code>, <code>%2</code>, etc... Par
322 exemple, ce qui suit va diriger la requête vers un répertoire différent
323 en fonction du nom d'hôte utilisé pour accéder au site :</p>
324 <pre class="prettyprint lang-config">RewriteCond "%{HTTP_HOST}" "(.*)"
325 RewriteRule "^/(.*)" "/sites/%1/$1"</pre>
326
327 <p>Si la requête concernait <code>http://example.com/foo/bar</code>,
328 alors <code>%1</code> contiendrait <code>example.com</code> et
329 <code>$1</code> contiendrait <code>foo/bar</code>.</p>
330
331
332
333 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
334 <div class="section">
335 <h2><a name="rewritemap" id="rewritemap">Tables de réécriture</a><a title="Lien permanent" href="#rewritemap" class="permalink">&para;</a></h2>
336
337 <p>La directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
338 permet en quelque sorte de faire appel à une fonction externe pour
339 effectuer la réécriture à votre place. Tout ceci est décrit plus en
340 détails dans la <a href="rewritemap.html">Documentation
341 supplémentaire sur RewriteMap</a>.</p>
342 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
343 <div class="section">
344 <h2><a name="htaccess" id="htaccess">Fichiers .htaccess</a><a title="Lien permanent" href="#htaccess" class="permalink">&para;</a></h2>
345
346 <p>La réécriture est en général définie au niveau de la configuration du
347 serveur principal (en dehors de toute section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>) ou dans une section  <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>. Il s'agit là de la
348 manière la plus simple de mettre en oeuvre la réécriture et nous la
349 recommandons. Il est possible, cependant, de mettre en oeuvre la
350 réécriture au sein d'une section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou d'un fichier <a href="../howto/htaccess.html"><code>.htaccess</code></a> ; ce type de
351 configuration est cependant plus complexe. Cette technique est appelée
352 réécriture par répertoire.</p>
353
354 <p>La principale différence avec les réécritures au niveau du serveur réside
355 dans le fait que le préfixe du chemin du répertoire contenant le fichier
356 <code>.htaccess</code> est supprimé avant la mise en correspondance dans
357 la règle <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. De
358 plus, on doit utiliser la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritebase">RewriteBase</a></code> pour s'assurer que la
359 requête est correctement mise en correspondance.</p>
360
361 </div></div>
362 <div class="bottomlang">
363 <p><span>Langues Disponibles: </span><a href="../en/rewrite/intro.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
364 <a href="../fr/rewrite/intro.html" title="Français">&nbsp;fr&nbsp;</a></p>
365 </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>
366 <script type="text/javascript"><!--//--><![CDATA[//><!--
367 var comments_shortname = 'httpd';
368 var comments_identifier = 'http://httpd.apache.org/docs/trunk/rewrite/intro.html';
369 (function(w, d) {
370     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
371         d.write('<div id="comments_thread"><\/div>');
372         var s = d.createElement('script');
373         s.type = 'text/javascript';
374         s.async = true;
375         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
376         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
377     }
378     else {
379         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
380     }
381 })(window, document);
382 //--><!]]></script></div><div id="footer">
383 <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>
384 <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[//><!--
385 if (typeof(prettyPrint) !== 'undefined') {
386     prettyPrint();
387 }
388 //--><!]]></script>
389 </body></html>