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