<?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><!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>mod_alias - Serveur Apache HTTP</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> <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.gif" /></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="./">Modules</a></div> <div id="page-content"> <div id="preamble"><h1>Module Apache mod_alias</h1> <div class="toplang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../fr/mod/mod_alias.html" title="Français"> fr </a> | <a href="../ja/mod/mod_alias.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="../ko/mod/mod_alias.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/mod/mod_alias.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> <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 fichiers depuis l'arborescence des documents du site web, ainsi que la redirection d'URL</td></tr> <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>alias_module</td></tr> <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_alias.c</td></tr></table> <h3>Sommaire</h3> <p>Les directives fournies par ce module permettent de manipuler et de contrôler les URLs à l'arrivée des requêtes sur le serveur. Les directives <code class="directive"><a href="#alias">Alias</a></code> et <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> permettent de faire correspondre des URLs avec des chemins du système de fichiers. Ceci permet de servir des contenus qui ne sont pas situés dans l'arborescence de <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> comme s'ils y étaient réellement. La directive <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> a pour effet supplémentaire de marquer le répertoire cible comme conteneur de scripts CGI.</p> <p>Les directives <code class="directive"><a href="#redirect">Redirect</a></code> indiquent aux clients qu'ils doivent effectuer une nouvelle requête avec une URL différente. Elles sont souvent utilisées lorsqu'une ressource a été déplacée.</p> <p><code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> est conçu pour traiter des tâches simples de manipulation d'URL. Pour des tâches plus complexes comme la manipulation des chaînes d'arguments des requêtes, utilisez plutôt les outils fournis par le module <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></p> </div> <div id="quickview"><h3 class="directives">Directives</h3> <ul id="toc"> <li><img alt="" src="../images/down.gif" /> <a href="#alias">Alias</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#aliasmatch">AliasMatch</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#redirect">Redirect</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#redirectmatch">RedirectMatch</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#redirectpermanent">RedirectPermanent</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#redirecttemp">RedirectTemp</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#scriptalias">ScriptAlias</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#scriptaliasmatch">ScriptAliasMatch</a></li> </ul> <h3>Sujets</h3> <ul id="topics"> <li><img alt="" src="../images/down.gif" /> <a href="#order">Chronologie du traitement</a></li> </ul><h3>Voir aussi</h3> <ul class="seealso"> <li><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></li> <li><a href="../urlmapping.html">Mise en correspondance des URLs avec le système de fichiers</a></li> </ul><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="order" id="order">Chronologie du traitement</a></h2> <p>Les alias et redirections apparaissant dans différents contextes sont traités comme les autres directives en respectant les <a href="../sections.html#mergin">règles de fusion</a> standards. Par contre, ils sont traités selon une chronologie particulière lorsqu'ils apparaissent dans le même contexte (par exemple, dans la même section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>).</p> <p>Premièrement, toutes les redirections sont traitées avant les alias, et ainsi, une requête qui correspond à une directive <code class="directive"><a href="#redirect">Redirect</a></code> ou <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ne se verra jamais appliquer d'alias. Deuxièmement, les alias et redirections sont traités selon l'ordre dans lequel ils apparaissent dans le fichier de configuration, seule la première correspondance étant prise en compte.</p> <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au même sous-répertoire, vous devez classer les chemins du plus précis au moins précis afin que toutes les directives puissent éventuellement s'appliquer, comme dans l'exemple suivant :</p> <pre class="prettyprint lang-config">Alias /foo/bar /baz Alias /foo /gaq</pre> <p>Si l'ordre des directives était inversé, la directive <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument <code>/foo</code> serait toujours appliquée avant la directive <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument <code>/foo/bar</code>, et cette dernière serait toujours ignorée.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance des URLs avec des chemins du système de fichiers</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Alias <var>chemin URL</var> <var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr> </table> <p>La directive <code class="directive">Alias</code> permet de stocker des documents (destinés à être servis) dans des zones du système de 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 (décodé avec caractères %) commence par <var>chemin URL</var> seront mises en correspondance avec des fichiers locaux dont le chemin commence par <var>chemin répertoire</var>. Le <var>chemin URL</var> est sensible à la casse, même sur les systèmes de fichiers insensibles à la casse.</p> <pre class="prettyprint lang-config">Alias /image /ftp/pub/image</pre> <p>Une requête pour <code>http://example.com/image/foo.gif</code> fera renvoyer par le serveur le fichier <code>/ftp/pub/image/foo.gif</code>. Seuls les éléments de chemin complets sont testés ; ainsi l'alias précédent ne conviendra pas pour une requête du style <code>http://example.com/imagefoo.gif</code>. Pour des mises en correspondance plus complexes faisant intervenir les expressions rationnelles, veuillez vous reporter à la directive <code class="directive"><a href="#aliasmatch">AliasMatch</a></code>.</p> <p>Notez que si vous ajoutez un slash de fin au <var>chemin URL</var>, vous devrez aussi ajouter un slash de fin au chemin de la requête. Autrement dit, si vous définissez</p> <pre class="prettyprint lang-config">Alias /icons/ /usr/local/apache/icons/</pre> <p>l'alias précédent ne s'appliquera pas à l'url <code>/icons</code> à cause de l'absence du slash final. Ainsi, si le slash final est absent du <var>chemin de l'URL</var>, il doit aussi l'être du <var>chemin du fichier</var>.</p> <p>Notez qu'il pourra s'avérer nécessaire de définir des sections <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> supplémentaires qui couvriront la <em>destination</em> des alias. Le traitement des alias intervenant avant le traitement des sections <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>, seules les cibles des alias sont affectées (Notez cependant que les sections <code class="directive"><a href="../mod/core.html#location"><Location></a></code> sont traitées avant les alias, et s'appliqueront donc).</p> <p>En particulier, si vous créez un alias ayant pour cible un répertoire situé en dehors de l'arborescence de votre site web <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>, vous devrez probablement permettre explicitement l'accès à ce répertoire.</p> <pre class="prettyprint lang-config">Alias /image /ftp/pub/image <Directory /ftp/pub/image> Require all granted </Directory></pre> <p>Le nombre de slashes dans le paramètre <var>chemin URL</var> doit correspondre au nombre de slashes dans le chemin URL de la requête.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="AliasMatch" id="AliasMatch">AliasMatch</a> <a name="aliasmatch" id="aliasmatch">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance des URLs avec le système de fichiers en faisant intervenir les expressions rationnelles</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AliasMatch <var>regex</var> <var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr> </table> <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 simple mise en correspondance de préfixe. L'expression rationnelle fournie est mise en correspondance avec le chemin URL, et si elle correspond, le serveur va substituer toute partie de chemin correspondant à l'expression entre parenthèses dans la chaîne fournie et l'utiliser comme nom de fichier. Par exemple, pour activer le répertoire <code>/icons</code>, on peut utiliser :</p> <pre class="prettyprint lang-config">AliasMatch ^/icons(.*) /usr/local/apache/icons$1</pre> <p>Toute la puissance des <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a> peut être mise à contribution. Par exemple, il est possible de construire un alias avec un modèle de chemin URL insensible à la casse :</p> <pre class="prettyprint lang-config">AliasMatch (?i)^/image(.*) /ftp/pub/image$1</pre> <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 portion supplémentaire de l'URI située après la partie du modèle qui correspond, à la fin du chemin du fichier de la partie droite, alors que <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> ne le fait pas. Cela signifie qu'il sera préférable dans la plupart des cas de comparer l'expression rationnelle du modèle à la totalité de l'URI de la requête, et d'utiliser les substitutions dans la partie droite.</p> <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 résultat. Au minimum, vous devez ajouter <code>^</code> au début de l'expression rationnelle, <code>(.*)$</code> à sa fin et <code>$1</code> à la fin de la chaîne de remplacement.</p> <p>Par exemple, supposons que nous voulions reformuler cet alias avec AliasMatch :</p> <pre class="prettyprint lang-config">Alias /image/ /ftp/pub/image/</pre> <p>Le simple remplacement d'Alias par AliasMatch ne produira pas le même résultat. Ainsi, ce qui suit va rediriger toutes les requêtes qui contiennent /image/ vers /ftp/pub/image/ :</p> <pre class="prettyprint lang-config">AliasMatch /image/ /ftp/pub/image/</pre> <p>Voici la directive AliasMatch qui produira le même résultat que la directive Alias ci-dessus :</p> <pre class="prettyprint lang-config">AliasMatch ^/image/(.*)$ /ftp/pub/image/$1</pre> <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 des choses beaucoup plus sophistiquées. Par exemple, vous pouvez servir différentes sortes de fichiers à partir de répertoires différents :</p> <pre class="prettyprint lang-config"> AliasMatch ^/image/(.*)\.jpg$ /fichiers/jpg.images/$1.jpg<br /> AliasMatch ^/image/(.*)\.gif$ /fichiers/gif.images/$1.gif</pre> <p>Les éventuels slashes de tête multiples seront supprimés par le serveur avant que les directives de ce module n'effectuent des comparaisons avec le chemin URL de la requête. </p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="Redirect" id="Redirect">Redirect</a> <a name="redirect" id="redirect">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe demandant au client d'effectuer une autre requête avec une URL différente</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Redirect [<var>état</var>] <var>chemin URL</var> <var>URL</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr> </table> <p>La directive Redirect permet de faire correspondre une ancienne URL à une nouvelle en demandant au client d'aller chercher la ressource à une autre localisation.</p> <p>L'ancien <em>chemin URL</em> est un chemin sensible à la casse (décodé à l'aide de caractères %) commençant par un slash. Les chemins relatifs ne sont pas autorisés.</p> <p>La nouvelle <em>URL</em> peut être une URL absolue commençant par un protocole et un nom d'hôte, mais on peut aussi utiliser un chemin URL commençant par un slash, auquel cas le protocole et le nom d'hôte du serveur local seront ajoutés.</p> <p>Ensuite, toute requête commençant par <em>chemin URL</em> va renvoyer une redirection au client vers l'<em>URL</em> cible. Tout élément de chemin supplémentaire situé en aval du <em>chemin URL</em> sera ajouté à l'URL cible.</p> <pre class="prettyprint lang-config"># Redirige vers une URL sur un serveur différent Redirect /service http://foo2.example.com/service # Redirige vers une URL sur le même serveur Redirect /one /two</pre> <p>Si le client effectue une requête pour l'URL <code>http://example.com/service/foo.txt</code>, il lui sera demandé d'en effectuer une autre pour l'URL <code>http://foo2.example.com/service/foo.txt</code>. Ceci concerne les requêtes avec paramètres <code>GET</code>, comme <code>http://example.com/service/foo.pl?q=23&a=42</code>, qui seront redirigées vers <code>http://foo2.example.com/service/foo.pl?q=23&a=42</code>. Notez que les <code>POST</code>s seront ignorés.<br /> Seuls les éléments de chemin complets sont testés, si bien que l'exemple précédent ne s'appliquera pas à l'URL <code>http://example.com/servicefoo.txt</code>. Pour des mises en correspondance plus complexes faisant intervenir les expressions rationnelles, veuillez vous reporter à la directive <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code>.</p> <div class="note"><h3>Note</h3> <p>Les directives de redirection ont priorité sur les directives Alias et ScriptAlias, quel que soit leur ordre d'apparition dans le fichier de configuration.</p></div> <p>Si aucun argument <var>état</var> n'est spécifié, la redirection sera temporaire (code HTTP 302). Le client est alors informé que la ressource a été temporairement déplacée. On peut utiliser l'argument <var>état</var> pour renvoyer d'autres codes HTTP :</p> <dl> <dt>permanent</dt> <dd>Renvoie un code de redirection permanente (301), indiquant que la ressource a été définitivement déplacée.</dd> <dt>temp</dt> <dd>Renvoie un code de redirection temporaire (302). C'est le comportement par défaut.</dd> <dt>seeother</dt> <dd>Renvoie un code "See Other" (303) indiquant que la ressource a été remplacée par une autre.</dd> <dt>gone</dt> <dd>Renvoie un code "Gone" (410) indiquant que la ressource a été définitivement supprimée. Lorsque ce code est utilisé, on ne doit pas utiliser l'argument <var>URL</var>.</dd> </dl> <p>On peut renvoyer d'autres codes en spécifiant le code numérique comme valeur de l'argument of <var>état</var>. Si le code est compris entre 300 et 399, l'argument <var>URL</var> doit être présent. Si le code n'est <em>pas</em> compris entre 300 et 399, l'argument <var>URL</var> ne doit pas apparaître. Le code doit être un code HTTP valide, connu du serveur HTTP Apache (voir la fonction <code>send_error_response</code> dans http_protocol.c).</p> <pre class="prettyprint lang-config">Redirect permanent /one http://example.com/two Redirect 303 /three http://example.com/other</pre> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RedirectMatch" id="RedirectMatch">RedirectMatch</a> <a name="redirectmatch" id="redirectmatch">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe faisant appel aux expressions rationnelles pour la mise en correspondance de l'URL courante</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RedirectMatch [<var>état</var>] <var>regex</var> <var>URL</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr> </table> <p>Cette directive est identique à la directive <code class="directive"><a href="#redirect">Redirect</a></code>, mais fait appel aux <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, à la place d'une simple mise en correspondance de préfixe. L'expression rationnelle fournie est mise en correspondance avec le chemin URL, et si elle correspond, le serveur va substituer toute partie de chemin correspondante entre parenthèses dans la chaîne spécifiée et l'utiliser comme nom de fichier. Par exemple, pour rediriger tous les fichiers GIF vers les fichiers JPEG de même nom sur un autre serveur, on peut utiliser :</p> <pre class="prettyprint lang-config">RedirectMatch (.*)\.gif$ http://autre.example.com$1.jpg</pre> <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 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 <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> pour plus de détails.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RedirectPermanent" id="RedirectPermanent">RedirectPermanent</a> <a name="redirectpermanent" id="redirectpermanent">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe permanente demandant au client d'effectuer une nouvelle requête avec une URL différente</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RedirectPermanent <var>chemin URL</var> <var>URL</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr> </table> <p>Cette directive informe le client que la redirection est permanente (code 301). Son comportement est exactement le même que celui de <code>Redirect permanent</code>.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="RedirectTemp" id="RedirectTemp">RedirectTemp</a> <a name="redirecttemp" id="redirecttemp">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Envoie une redirection externe temporaire demandant au client d'effectuer une nouvelle requête avec une URL différente</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RedirectTemp <var>chemin URL</var> <var>URL</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr> </table> <p>Cette directive informe le client que la redirection n'est que temporaire (code 302). Son comportement est exactement le même que celui de <code>Redirect temp</code>.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ScriptAlias" id="ScriptAlias">ScriptAlias</a> <a name="scriptalias" id="scriptalias">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre une URL à une zone du système de fichiers et désigne la cible comme script CGI</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptAlias <var>chemin URL</var> <var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr> </table> <p>La directive <code class="directive">ScriptAlias</code> présente le même comportement que la directive <code class="directive"><a href="#alias">Alias</a></code>, mais désigne en plus le répertoire cible comme conteneur de scripts CGI qui seront traitées par le gestionnaire cgi-script du module <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>. Les URLs dont le chemin URL sensible à la casse (décodé avec caractères %) commence par <var>chemin URL</var> seront mises en correspondance avec les scripts dont le chemin commence par le second argument, qui est un chemin complet dans le système de fichiers local.</p> <pre class="prettyprint lang-config">ScriptAlias /cgi-bin/ /web/cgi-bin/</pre> <p>Une requête pour <code>http://example.com/cgi-bin/foo</code> ferait exécuter par le serveur le script <code>/web/cgi-bin/foo</code>. Cette configuration est sensiblement équivalente à :</p> <pre class="prettyprint lang-config">Alias /cgi-bin/ /web/cgi-bin/ <Location /cgi-bin > SetHandler cgi-script Options +ExecCGI </Location></pre> <p>Vous pouvez aussi utiliser <code class="directive">ScriptAlias</code> avec un script ou gestionnaire de votre cru. Par exemple :</p> <pre class="prettyprint lang-config">ScriptAlias /cgi-bin/ /web/cgi-handler.pl</pre> <p>Dans ce scénario, tous les fichiers faisant l'objet d'une requête dans <code>/cgi-bin/</code> seront traités par le fichier que vous avez spécifié, ce qui vous permet d'utiliser votre propre gestionnaire. Vous pouvez l'utiliser comme enveloppe (wrapper) pour les scripts CGI afin d'ajouter du contenu, ou autre action "maison".</p> <div class="warning">Il est préférable d'éviter de placer les 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 accidentellement leur code source lors d'une modification de configuration. On y parvient aisément avec <code class="directive">ScriptAlias</code> en mettant en correspondance une URL et en désignant la cible comme scripts CGI par la même occasion. Si vous choisissez de placer vos scripts CGI dans un répertoire accessible depuis le web, n'utilisez pas <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 : <pre class="prettyprint lang-config"><Directory /usr/local/apache2/htdocs/cgi-bin > SetHandler cgi-script Options ExecCGI </Directory></pre> Ceci est nécessaire car plusieurs <var>chemins URL</var> peuvent correspondre à la même zone du système de fichiers, court-circuitant ainsi la directive <code class="directive">ScriptAlias</code> et révélant le code source des scripts CGI s'ils ne sont pas protégés par une section <code class="directive"><a href="../mod/core.html#directory">Directory</a></code>.</div> <h3>Voir aussi</h3> <ul> <li><a href="../howto/cgi.html">Tutoriel CGI</a></li> </ul> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="ScriptAliasMatch" id="ScriptAliasMatch">ScriptAliasMatch</a> <a name="scriptaliasmatch" id="scriptaliasmatch">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre une URL à une zone du système de fichiers en faisant appel aux expressions rationnelles et en désignant la cible comme un script CGI</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptAliasMatch <var>regex</var> <var>chemin fichier</var>|<var>chemin répertoire</var></code></td></tr> <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_alias</td></tr> </table> <p>Cette directive est équivalente à la directive <code class="directive"><a href="#scriptalias">ScriptAlias</a></code>, mais fait appel aux <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expressions rationnelles</a>, à la place d'une simple mise en correspondance de préfixe. L'expression rationnelle fournie est mise en correspondance avec le chemin URL, et si elle correspond, le serveur va substituer toute partie de chemin entre parenthèses dans la chaîne spécifiée et l'utiliser comme nom de fichier. Par exemple, pour activer le répertoire standard <code>/cgi-bin</code>, on peut utiliser :</p> <pre class="prettyprint lang-config">ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1</pre> <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 à contribution. Par exemple, il est possible de construire un alias avec une comparaison du modèle du chemin URL insensible à la casse :</p> <pre class="prettyprint lang-config">ScriptAliasMatch (?i)^/cgi-bin(.*) /usr/local/apache/cgi-bin$1</pre> <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 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 <code class="directive"><a href="#aliasmatch">AliasMatch</a></code> pour plus de détails.</p> </div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../fr/mod/mod_alias.html" title="Français"> fr </a> | <a href="../ja/mod/mod_alias.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="../ko/mod/mod_alias.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/mod/mod_alias.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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/mod/mod_alias.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 2014 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>