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" />
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7 This file is generated from xml source: DO NOT EDIT
8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10 <title>mod_alias - Serveur Apache HTTP Version 2.4</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">
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
19 <div id="page-header">
20 <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>
21 <p class="apache">Serveur Apache HTTP Version 2.4</p>
22 <img alt="" src="../images/feather.png" /></div>
23 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
25 <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="./">Modules</a></div>
26 <div id="page-content">
27 <div id="preamble"><h1>Module Apache mod_alias</h1>
29 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English"> en </a> |
30 <a href="../fr/mod/mod_alias.html" title="Français"> fr </a> |
31 <a href="../ja/mod/mod_alias.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
32 <a href="../ko/mod/mod_alias.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
33 <a href="../tr/mod/mod_alias.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
35 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet d'atteindre différentes parties du système de
36 fichiers depuis l'arborescence des documents du site web, ainsi que la
37 redirection d'URL</td></tr>
38 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
39 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>alias_module</td></tr>
40 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_alias.c</td></tr></table>
43 <p>Les directives fournies par ce module permettent de manipuler et
44 de contrôler les URLs à l'arrivée des requêtes sur le serveur. Les
45 directives <code class="directive"><a href="#alias">Alias</a></code> et
46 <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> permettent de
47 faire correspondre des URLs avec des chemins du système de fichiers.
48 Ceci permet de servir des contenus qui ne sont pas situés dans
49 l'arborescence de <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> comme s'ils y étaient
50 réellement. La directive <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> a pour effet
51 supplémentaire de marquer le répertoire cible comme conteneur de
54 <p>Les directives <code class="directive"><a href="#redirect">Redirect</a></code>
55 indiquent aux clients qu'ils doivent effectuer une nouvelle requête
56 avec une URL différente. Elles sont souvent utilisées lorsqu'une
57 ressource a été déplacée.</p>
59 <p>Lorsque les directives <code class="directive"><a href="#alias">Alias</a></code>, <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ou <code class="directive"><a href="#redirect">Redirect</a></code> sont définies au sein d'une
60 section <code class="directive"><a href="../mod/core.html#location"><Location></a></code>
61 ou <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>, vous pouvez utiliser la <a href="../expr.html">syntaxe des expressions</a> pour manipuler l'URL
62 ou le chemin de destination.
65 <p><code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> est conçu pour traiter des tâches
66 simples de manipulation d'URL. Pour des tâches plus complexes comme
67 la manipulation des chaînes d'arguments des requêtes, utilisez
68 plutôt les outils fournis par le module <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></p>
71 <div id="quickview"><h3>Sujets</h3>
73 <li><img alt="" src="../images/down.gif" /> <a href="#order">Chronologie du traitement</a></li>
74 </ul><h3 class="directives">Directives</h3>
76 <li><img alt="" src="../images/down.gif" /> <a href="#alias">Alias</a></li>
77 <li><img alt="" src="../images/down.gif" /> <a href="#aliasmatch">AliasMatch</a></li>
78 <li><img alt="" src="../images/down.gif" /> <a href="#redirect">Redirect</a></li>
79 <li><img alt="" src="../images/down.gif" /> <a href="#redirectmatch">RedirectMatch</a></li>
80 <li><img alt="" src="../images/down.gif" /> <a href="#redirectpermanent">RedirectPermanent</a></li>
81 <li><img alt="" src="../images/down.gif" /> <a href="#redirecttemp">RedirectTemp</a></li>
82 <li><img alt="" src="../images/down.gif" /> <a href="#scriptalias">ScriptAlias</a></li>
83 <li><img alt="" src="../images/down.gif" /> <a href="#scriptaliasmatch">ScriptAliasMatch</a></li>
85 <h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_alias">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_alias">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
87 <li><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></li>
88 <li><a href="../urlmapping.html">Mise en correspondance des URLs avec le
89 système de fichiers</a></li>
90 <li><a href="#comments_section">Commentaires</a></li></ul></div>
91 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
93 <h2><a name="order" id="order">Chronologie du traitement</a></h2>
95 <p>Les alias et redirections apparaissant dans différents contextes
96 sont traités comme les autres directives en respectant les <a href="../sections.html#mergin">règles de fusion</a> standards. Par
97 contre, ils sont traités selon une chronologie particulière
98 lorsqu'ils apparaissent dans le même contexte (par exemple, dans la
99 même section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>).</p>
101 <p>Premièrement, toutes les redirections sont traitées avant les
102 alias, et ainsi, une requête qui correspond à une directive
103 <code class="directive"><a href="#redirect">Redirect</a></code> ou <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ne se verra jamais
104 appliquer d'alias. Deuxièmement, les alias et redirections sont
105 traités selon l'ordre dans lequel ils apparaissent dans le fichier
106 de configuration, seule la première correspondance étant prise en
109 <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
110 même sous-répertoire, vous devez classer les chemins du plus précis
111 au moins précis afin que toutes les directives puissent
112 éventuellement s'appliquer, comme dans l'exemple suivant :</p>
114 <pre class="prettyprint lang-config">Alias "/foo/bar" "/baz"
115 Alias "/foo" "/gaq"</pre>
118 <p>Si l'ordre des directives était inversé, la directive <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
119 <code>/foo</code> serait toujours appliquée avant la directive
120 <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
121 <code>/foo/bar</code>, et cette dernière serait toujours
124 <p>La définition de directives <code class="directive"><a href="#alias">Alias</a></code>, <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ou <code class="directive"><a href="#redirect">Redirect</a></code> au sein de sections
125 <code class="directive"><a href="../mod/core.html#location"><Location></a></code> ou
126 <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>
127 l'emporte sur d'autres définitions éventuelles de ces mêmes
128 directives au niveau de la configuration générale du serveur.</p>
131 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
132 <div class="directive-section"><h2><a name="alias" id="alias">Directive</a> <a name="Alias" id="Alias">Alias</a></h2>
133 <table class="directive">
134 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance des URLs avec des chemins du système
135 de fichiers</td></tr>
136 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Alias [<var>chemin URL</var>]
137 <var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr>
138 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
139 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
140 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
143 <p>La directive <code class="directive">Alias</code> permet de stocker des
144 documents (destinés à être servis) dans des zones du système de
145 fichiers situées en dehors de l'arborescence du site web <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Les URLs dont le chemin
146 (décodé avec caractères %) commence par <var>chemin URL</var> seront
147 mises en correspondance avec des fichiers locaux dont le chemin
148 commence par <var>chemin répertoire</var>. Le <var>chemin URL</var>
149 est sensible à la casse, même sur les systèmes de fichiers
150 insensibles à la casse.</p>
152 <pre class="prettyprint lang-config">Alias "/image" "/ftp/pub/image"</pre>
155 <p>Une requête pour <code>http://example.com/image/foo.gif</code> fera
156 renvoyer par le serveur le fichier
157 <code>/ftp/pub/image/foo.gif</code>. Seuls les éléments de chemin
158 complets sont testés ; ainsi l'alias précédent ne conviendra pas
159 pour une requête du style <code>http://example.com/imagefoo.gif</code>.
160 Pour des mises en correspondance plus complexes faisant intervenir
161 les expressions rationnelles, veuillez vous reporter à la directive
162 <code class="directive"><a href="#aliasmatch">AliasMatch</a></code>.</p>
164 <p>Notez que si vous ajoutez un slash de fin au <var>chemin
165 URL</var>, vous devrez aussi ajouter un slash de fin au chemin de la
166 requête. Autrement dit, si vous définissez</p>
168 <pre class="prettyprint lang-config">Alias "/icons/" "/usr/local/apache/icons/"</pre>
171 <p>l'alias précédent ne s'appliquera pas à l'URL
172 <code>/icons</code> à cause de l'absence du slash final. Ainsi, si
173 le slash final est absent du <var>chemin de l'URL</var>, il doit
174 aussi l'être du <var>chemin du fichier</var>.</p>
176 <p>Notez qu'il pourra s'avérer nécessaire de définir des sections
177 <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>
178 supplémentaires qui couvriront la <em>destination</em> des alias.
179 Le traitement des alias intervenant avant le traitement des sections
180 <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>,
181 seules les cibles des alias sont affectées (Notez cependant
182 que les sections <code class="directive"><a href="../mod/core.html#location"><Location></a></code> sont traitées avant les alias, et
183 s'appliqueront donc).</p>
185 <p>En particulier, si vous créez un alias ayant pour cible un
186 répertoire situé en dehors de l'arborescence de votre site web
187 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>, vous devrez
188 probablement permettre explicitement l'accès à ce répertoire.</p>
190 <pre class="prettyprint lang-config">Alias "/image" "/ftp/pub/image"
191 <Directory "/ftp/pub/image">
193 </Directory></pre>
196 <p>Le nombre de slashes dans le paramètre <var>chemin URL</var> doit
197 correspondre au nombre de slashes dans le chemin URL de la requête.</p>
199 <p>Si la directive <code class="directive">Alias</code> est définie au sein
200 d'une section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> ou <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code>, <var>chemin URL</var> est
201 omis et <var>chemin fichier</var> est interprété en utilisant la <a href="../expr.html">syntaxe des expressions</a>.<br />
202 Cette syntaxe est disponible à partir de la version 2.4.19 du
203 serveur HTTP Apache.</p>
205 <pre class="prettyprint lang-config"><Location "/image">
206 Alias "/ftp/pub/image"
208 <LocationMatch "/error/(?<NUMBER>[0-9]+)">
209 Alias "/usr/local/apache/errors/%{env:MATCH_NUMBER}.html"
210 </LocationMatch></pre>
215 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
216 <div class="directive-section"><h2><a name="aliasmatch" id="aliasmatch">Directive</a> <a name="AliasMatch" id="AliasMatch">AliasMatch</a></h2>
217 <table class="directive">
218 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance des URLs avec le système de fichiers
219 en faisant intervenir les expressions rationnelles</td></tr>
220 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AliasMatch <var>regex</var>
221 <var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr>
222 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
223 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
224 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
226 <p>Cette directive est identique à la directive <code class="directive"><a href="#alias">Alias</a></code>, mais fait appel aux <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, à la place d'une
227 simple mise en correspondance de préfixe. L'expression rationnelle
228 fournie est mise en correspondance avec le chemin URL, et si elle
229 correspond, le serveur va substituer toute partie de chemin
230 correspondant à l'expression entre parenthèses dans la chaîne
231 fournie et l'utiliser comme nom de fichier.
232 Par exemple, pour activer le répertoire <code>/icons</code>, on peut
235 <pre class="prettyprint lang-config">AliasMatch "^/icons(.*)" "/usr/local/apache/icons$1$2"</pre>
238 <p>Toute la puissance des <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions
239 rationnelles</a> peut être mise à contribution. Par exemple,
240 il est possible de construire un alias avec un modèle de chemin URL
241 insensible à la casse :</p>
243 <pre class="prettyprint lang-config">AliasMatch "(?i)^/image(.*)" "/ftp/pub/image$1"</pre>
246 <p>Il existe une différence subtile entre <code class="directive"><a href="#alias">Alias</a></code> et <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> : <code class="directive"><a href="#alias">Alias</a></code> copie automatiquement toute
247 portion supplémentaire de l'URI située après la partie du modèle qui
248 correspond, à la fin du chemin du fichier de la partie droite, alors
249 que <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> ne le fait
250 pas. Cela signifie qu'il sera préférable dans la plupart des cas de
251 comparer l'expression rationnelle du modèle à la totalité de l'URI
252 de la requête, et d'utiliser les substitutions dans la partie
255 <p>En d'autres termes, le remplacement d'<code class="directive"><a href="#alias">Alias</a></code> par <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> ne produira pas le même
256 résultat. Au minimum, vous devez ajouter <code>^</code> au début de
257 l'expression rationnelle, <code>(.*)$</code> à sa fin et
258 <code>$1</code> à la fin de la chaîne de remplacement.</p>
260 <p>Par exemple, supposons que nous voulions reformuler cet alias
261 avec AliasMatch :</p>
263 <pre class="prettyprint lang-config">Alias "/image/" "/ftp/pub/image/"</pre>
266 <p>Le simple remplacement d'Alias par AliasMatch ne produira pas le
267 même résultat. Ainsi, ce qui suit va rediriger toutes les requêtes
268 qui contiennent /image/ vers /ftp/pub/image/ :</p>
270 <pre class="prettyprint lang-config">AliasMatch "/image/" "/ftp/pub/image/"</pre>
273 <p>Voici la directive AliasMatch qui produira le même résultat que
274 la directive Alias ci-dessus :</p>
276 <pre class="prettyprint lang-config">AliasMatch "^/image/(.*)$" "/ftp/pub/image/$1"</pre>
279 <p>Bien entendu, il n'y a aucune raison d'utiliser <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> dans le cas où <code class="directive"><a href="#alias">Alias</a></code> suffit. <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> vous permet d'effectuer
280 des choses beaucoup plus sophistiquées. Par exemple, vous pouvez
281 servir différentes sortes de fichiers à partir de répertoires
284 <pre class="prettyprint lang-config"> AliasMatch "^/image/(.*)\.jpg$" "/fichiers/jpg.images/$1.jpg"
285 AliasMatch "^/image/(.*)\.gif$" "/fichiers/gif.images/$1.gif"</pre>
288 <p>Les éventuels slashes de tête multiples seront supprimés par le
289 serveur avant que les directives de ce module n'effectuent des
290 comparaisons avec le chemin URL de la requête.
295 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
296 <div class="directive-section"><h2><a name="redirect" id="redirect">Directive</a> <a name="Redirect" id="Redirect">Redirect</a></h2>
297 <table class="directive">
298 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe demandant au client
299 d'effectuer une autre requête avec une URL différente</td></tr>
300 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Redirect [<var>état</var>] [<var>chemin URL</var>]
301 <var>URL</var></code></td></tr>
302 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
303 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
304 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
305 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
307 <p>La directive Redirect permet de faire correspondre une ancienne
308 URL à une nouvelle en demandant au client d'aller chercher la ressource à
309 une autre localisation.</p>
311 <p>L'ancien <em>chemin URL</em> est un chemin sensible à la casse
312 (décodé à l'aide de caractères %) commençant par un slash. Les
313 chemins relatifs ne sont pas autorisés.</p>
315 <p>La nouvelle <em>URL</em>
316 peut être une URL absolue commençant par un protocole et un nom
317 d'hôte, mais on peut aussi utiliser un chemin URL commençant par un
318 slash, auquel cas le protocole et le nom d'hôte du serveur local
321 <p>Ensuite, toute requête commençant par <em>chemin URL</em> va
322 renvoyer une redirection au client vers l'<em>URL</em> cible. Tout
323 élément de chemin supplémentaire situé en aval du <em>chemin
324 URL</em> sera ajouté à l'URL cible.</p>
326 <pre class="prettyprint lang-config"># Redirige vers une URL sur un serveur différent
327 Redirect "/service" "http://foo2.example.com/service"
329 # Redirige vers une URL sur le même serveur
330 Redirect "/one" "/two"</pre>
333 <p>Si le client effectue une requête pour l'URL
334 <code>http://example.com/service/foo.txt</code>, il lui sera demandé
335 d'en effectuer une autre pour l'URL
336 <code>http://foo2.example.com/service/foo.txt</code>. Ceci concerne
337 les requêtes avec paramètres <code>GET</code>, comme
338 <code>http://example.com/service/foo.pl?q=23&a=42</code>, qui
339 seront redirigées vers
340 <code>http://foo2.example.com/service/foo.pl?q=23&a=42</code>.
341 Notez que les <code>POST</code>s seront ignorés.<br />
343 éléments de chemin complets sont testés, si bien que l'exemple
344 précédent ne s'appliquera pas à l'URL
345 <code>http://example.com/servicefoo.txt</code>. Pour des mises en
346 correspondance plus complexes utilisant la <a href="../expr.html">syntaxe des expressions</a>, ne spécifiez pas
347 d'argument <var>chemin URL</var> comme décrit ci-dessous. En outre,
348 pour une mise en correspondance en utilisant les expressions
349 rationnelles, veuillez vous reporter à la directive <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code>.</p>
352 <div class="note"><h3>Note</h3>
353 <p>Les directives de redirection ont priorité sur les directives
354 Alias et ScriptAlias, quel que soit leur ordre d'apparition dans le
355 fichier de configuration. Les directives Redirect définies au sein
356 d'une section Location l'emportent sur les directives Redirect et
357 Alias comportant un argument <var>chemin URL</var>.</p></div>
359 <p>Si aucun argument <var>état</var> n'est spécifié, la
360 redirection sera temporaire (code HTTP 302). Le client est alors
361 informé que la ressource a été temporairement déplacée. On peut
362 utiliser l'argument <var>état</var> pour renvoyer d'autres codes HTTP :</p>
367 <dd>Renvoie un code de redirection permanente (301), indiquant
368 que la ressource a été définitivement déplacée.</dd>
372 <dd>Renvoie un code de redirection temporaire (302). C'est le
373 comportement par défaut.</dd>
377 <dd>Renvoie un code "See Other" (303) indiquant que la ressource
378 a été remplacée par une autre.</dd>
382 <dd>Renvoie un code "Gone" (410) indiquant que la ressource a
383 été définitivement supprimée. Lorsque
384 ce code est utilisé, on ne
385 doit pas utiliser l'argument <var>URL</var>.</dd>
388 <p>On peut renvoyer d'autres codes en spécifiant le code
389 numérique comme valeur de l'argument of <var>état</var>.
390 Si le code est compris entre 300 et 399, l'argument
391 <var>URL</var> doit être présent. Si le code
392 n'est <em>pas</em> compris entre 300 et 399, l'argument
393 <var>URL</var> ne doit pas apparaître. Le code doit être un code
394 HTTP valide, connu du serveur HTTP Apache (voir la
395 fonction <code>send_error_response</code> dans
396 http_protocol.c).</p>
398 <pre class="prettyprint lang-config">Redirect permanent "/one" "http://example.com/two"
399 Redirect 303 "/three" "http://example.com/other"</pre>
402 <p>Si une directive <code class="directive">Redirect</code> est définie au
403 sein d'une section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> ou <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code> et si l'argument <var>chemin
404 URL</var> est omis, l'argument <var>URL</var> sera interprété en
405 utilisant la <a href="../expr.html">syntaxe des expressions</a>.<br />
406 Cette syntaxe est disponible à partir de la version 2.4.19 du
407 serveur HTTP Apache.</p>
409 <pre class="prettyprint lang-config"><Location "/one">
410 Redirect permanent "http://example.com/two"
412 <Location "/three">
413 Redirect 303 "http://example.com/other"
415 <LocationMatch "/error/(?<NUMBER>[0-9]+)">
416 Redirect permanent "http://example.com/errors/%{env:MATCH_NUMBER}.html"
417 </LocationMatch></pre>
422 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
423 <div class="directive-section"><h2><a name="redirectmatch" id="redirectmatch">Directive</a> <a name="RedirectMatch" id="RedirectMatch">RedirectMatch</a></h2>
424 <table class="directive">
425 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe faisant appel aux
426 expressions rationnelles pour la mise en correspondance de l'URL
428 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RedirectMatch [<var>état</var>] <var>regex</var>
429 <var>URL</var></code></td></tr>
430 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
431 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
432 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
433 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
435 <p>Cette directive est identique à la directive <code class="directive"><a href="#redirect">Redirect</a></code>, mais fait appel aux
436 <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, à la
437 place d'une simple mise en correspondance de préfixe. L'expression
438 rationnelle fournie est mise en correspondance avec le chemin URL,
439 et si elle correspond, le serveur va substituer toute partie de
440 chemin correspondante entre parenthèses dans la chaîne spécifiée et
441 l'utiliser comme nom de fichier. Par exemple, pour rediriger tous
442 les fichiers GIF vers les fichiers JPEG de même nom sur un autre
443 serveur, on peut utiliser :</p>
445 <pre class="prettyprint lang-config">RedirectMatch "(.*)\.gif$" "http://autre.example.com$1.jpg"</pre>
448 <p>Les remarques à propos de la différence entre <code class="directive"><a href="#alias">Alias</a></code> et <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> s'appliquent aussi à la
449 différence entre les directives <code class="directive"><a href="#redirect">Redirect</a></code> et <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code>. Voir la directive
450 <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> pour plus de
455 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
456 <div class="directive-section"><h2><a name="redirectpermanent" id="redirectpermanent">Directive</a> <a name="RedirectPermanent" id="RedirectPermanent">RedirectPermanent</a></h2>
457 <table class="directive">
458 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe permanente demandant au
459 client d'effectuer une nouvelle requête avec une URL
461 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RedirectPermanent <var>chemin URL</var> <var>URL</var></code></td></tr>
462 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
463 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
464 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
465 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
467 <p>Cette directive informe le client que la redirection est
468 permanente (code 301). Son comportement est exactement le même
469 que celui de <code>Redirect permanent</code>.</p>
472 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
473 <div class="directive-section"><h2><a name="redirecttemp" id="redirecttemp">Directive</a> <a name="RedirectTemp" id="RedirectTemp">RedirectTemp</a></h2>
474 <table class="directive">
475 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe temporaire demandant au
476 client d'effectuer une nouvelle requête avec une URL
478 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RedirectTemp <var>chemin URL</var> <var>URL</var></code></td></tr>
479 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
480 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
481 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
482 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
484 <p>Cette directive informe le client que la redirection n'est
485 que temporaire (code 302). Son comportement est exactement le même
486 que celui de <code>Redirect temp</code>.</p>
489 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
490 <div class="directive-section"><h2><a name="scriptalias" id="scriptalias">Directive</a> <a name="ScriptAlias" id="ScriptAlias">ScriptAlias</a></h2>
491 <table class="directive">
492 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre une URL à une zone du système de fichiers
493 et désigne la cible comme script CGI</td></tr>
494 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptAlias [<var>chemin URL</var>]
495 <var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr>
496 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
497 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
498 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
500 <p>La directive <code class="directive">ScriptAlias</code> présente le même
501 comportement que la directive <code class="directive"><a href="#alias">Alias</a></code>, mais désigne en plus le
502 répertoire cible comme conteneur de scripts CGI qui seront traitées
503 par le gestionnaire cgi-script du module <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>.
504 Les URLs dont le chemin URL sensible à la casse (décodé avec
505 caractères %) commence par <var>chemin URL</var> seront mises en
506 correspondance avec les scripts dont le chemin commence par le
507 second argument, qui est un chemin complet dans le système de
510 <pre class="prettyprint lang-config">ScriptAlias "/cgi-bin/" "/web/cgi-bin/"</pre>
513 <p>Une requête pour <code>http://example.com/cgi-bin/foo</code>
514 ferait exécuter par le serveur le script
515 <code>/web/cgi-bin/foo</code>. Cette configuration est sensiblement
517 <pre class="prettyprint lang-config">Alias "/cgi-bin/" "/web/cgi-bin/"
518 <Location "/cgi-bin">
519 SetHandler cgi-script
521 </Location></pre>
524 <p>Vous pouvez aussi utiliser <code class="directive">ScriptAlias</code>
525 avec un script ou gestionnaire de votre cru. Par exemple :</p>
527 <pre class="prettyprint lang-config">ScriptAlias "/cgi-bin/" "/web/cgi-handler.pl"</pre>
530 <p>Dans ce scénario, tous les fichiers faisant l'objet d'une requête
531 dans <code>/cgi-bin/</code> seront traités par le fichier que vous
532 avez spécifié, ce qui vous permet d'utiliser votre propre
533 gestionnaire. Vous pouvez l'utiliser comme enveloppe (wrapper) pour
534 les scripts CGI afin d'ajouter du contenu, ou autre action "maison".</p>
536 <div class="warning">Il est préférable d'éviter de placer les
537 scripts CGI dans l'arborescence de <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> afin d'éviter de révéler
538 accidentellement leur code source lors d'une modification de
539 configuration. On y parvient aisément avec
540 <code class="directive">ScriptAlias</code> en mettant en correspondance une
541 URL et en désignant la cible comme scripts CGI par la même occasion.
542 Si vous choisissez de placer vos scripts CGI dans un répertoire
543 accessible depuis le web, n'utilisez pas
544 <code class="directive">ScriptAlias</code>. Utilisez plutôt <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code>, et <code class="directive"><a href="../mod/core.html#options">Options</a></code> comme dans l'exemple suivant :
545 <pre class="prettyprint lang-config"><Directory "/usr/local/apache2/htdocs/cgi-bin">
546 SetHandler cgi-script
548 </Directory></pre>
550 Ceci est nécessaire car plusieurs <var>chemins URL</var> peuvent
551 correspondre à la même zone du système de fichiers, court-circuitant
552 ainsi la directive <code class="directive">ScriptAlias</code> et révélant le
553 code source des scripts CGI s'ils ne sont pas protégés par une
554 section <code class="directive"><a href="../mod/core.html#directory">Directory</a></code>.</div>
556 <p>Si la directive <code class="directive">ScriptAlias</code> est définie au
557 sein d'une section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> ou <code class="directive"><a href="../mod/core.html#locationmatch"><LocationMatch></a></code> et si l'argument <var>chemin
558 URL</var> est omis, l'argument <var>URL</var> sera interprété en
559 utilisant la <a href="../expr.html">syntaxe des expressions</a>.<br />
560 Cette syntaxe est disponible à partir de la version 2.4.19 du
561 serveur HTTP Apache.</p>
563 <pre class="prettyprint lang-config"><Location "/cgi-bin">
564 ScriptAlias "/web/cgi-bin/"
566 <LocationMatch "/cgi-bin/errors/(?<NUMBER>[0-9]+)">
567 ScriptAlias "/web/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi"
568 </LocationMatch></pre>
574 <li><a href="../howto/cgi.html">Tutoriel CGI</a></li>
577 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
578 <div class="directive-section"><h2><a name="scriptaliasmatch" id="scriptaliasmatch">Directive</a> <a name="ScriptAliasMatch" id="ScriptAliasMatch">ScriptAliasMatch</a></h2>
579 <table class="directive">
580 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre une URL à une zone du système de fichiers
581 en faisant appel aux expressions rationnelles et en désignant la cible
582 comme un script CGI</td></tr>
583 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptAliasMatch <var>regex</var>
584 <var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr>
585 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
586 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
587 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr>
589 <p>Cette directive est équivalente à la directive <code class="directive"><a href="#scriptalias">ScriptAlias</a></code>, mais fait appel aux
590 <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, à la
591 place d'une simple mise en correspondance de préfixe. L'expression
592 rationnelle fournie est mise en correspondance avec le chemin URL,
593 et si elle correspond, le serveur va substituer toute partie de
594 chemin entre parenthèses dans la chaîne spécifiée et l'utiliser
595 comme nom de fichier. Par exemple, pour activer le répertoire
596 standard <code>/cgi-bin</code>, on peut utiliser :</p>
598 <pre class="prettyprint lang-config">ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"</pre>
601 <p>Comme dans le cas d'AliasMatch, toute la puissance des <a class="glossarylink" href="../glossary.html#rexex" title="voir glossaire">expressions rationnelles</a> peut être mise à
602 contribution. Par exemple, il est possible de construire un alias
603 avec une comparaison du modèle du chemin URL insensible à la casse :</p>
605 <pre class="prettyprint lang-config">ScriptAliasMatch "(?i)^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"</pre>
608 <p>Les remarques à propos de la différence entre <code class="directive"><a href="#alias">Alias</a></code> et <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> s'appliquent aussi à la
609 différence entre les directives <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> et <code class="directive"><a href="#scriptaliasmatch">ScriptAliasMatch</a></code>. Voir la directive
610 <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> pour plus de
616 <div class="bottomlang">
617 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English"> en </a> |
618 <a href="../fr/mod/mod_alias.html" title="Français"> fr </a> |
619 <a href="../ja/mod/mod_alias.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
620 <a href="../ko/mod/mod_alias.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
621 <a href="../tr/mod/mod_alias.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
622 </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>
623 <script type="text/javascript"><!--//--><![CDATA[//><!--
624 var comments_shortname = 'httpd';
625 var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_alias.html';
627 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
628 d.write('<div id="comments_thread"><\/div>');
629 var s = d.createElement('script');
630 s.type = 'text/javascript';
632 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
633 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
636 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
638 })(window, document);
639 //--><!]]></script></div><div id="footer">
640 <p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
641 <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[//><!--
642 if (typeof(prettyPrint) !== 'undefined') {