<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_alias

Langues Disponibles:  en  |  fr  |  ja  |  ko  |  tr 

Description: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
Statut:Base
Identificateur�de�Module:alias_module
Fichier�Source:mod_alias.c

Sommaire

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 Alias et ScriptAlias 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 DocumentRoot comme s'ils y �taient r�ellement. La directive ScriptAlias a pour effet suppl�mentaire de marquer le r�pertoire cible comme conteneur de scripts CGI.

Les directives Redirect 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.

mod_alias 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 mod_rewrite

Directives

Sujets

Voir aussi

top

Chronologie du traitement

Les alias et redirections apparaissant dans diff�rents contextes sont trait�s comme les autres directives en respectant les r�gles de fusion 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 <VirtualHost>).

Premi�rement, toutes les redirections sont trait�es avant les alias, et ainsi, une requ�te qui correspond � une directive Redirect ou RedirectMatch 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.

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 :

Alias /foo/bar /baz
Alias /foo /gaq
    

Si l'ordre des directives �tait invers�, la directive Alias ayant pour argument /foo serait toujours appliqu�e avant la directive Alias ayant pour argument /foo/bar, et cette derni�re serait toujours ignor�e.

top

Alias Directive

Description:Met en correspondance des URLs avec des chemins du syst�me de fichiers
Syntaxe:Alias chemin URL chemin fichier|chemin r�pertoire
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_alias

La directive Alias 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 DocumentRoot. Les URLs dont le chemin (d�cod� avec caract�res %) commence par chemin URL seront mises en correspondance avec des fichiers locaux dont le chemin commence par chemin r�pertoire. Le chemin URL est sensible � la casse, m�me sur les syst�mes de fichiers insensibles � la casse.

      Alias /image /ftp/pub/image
    

Une requ�te pour http://example.com/image/foo.gif fera renvoyer par le serveur le fichier /ftp/pub/image/foo.gif. 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 http://example.com/imagefoo.gif. Pour des mises en correspondance plus complexes faisant intervenir les expressions rationnelles, veuillez vous reporter � la directive AliasMatch.

Notez que si vous ajoutez un slash de fin au chemin URL, vous devrez aussi ajouter un slash de fin au chemin de la requ�te. Autrement dit, si vous d�finissez

Alias /icons/ /usr/local/apache/icons/

l'alias pr�c�dent ne s'appliquera pas � l'url /icons � cause de l'absence du slash final. Ainsi, si le slash final est absent du chemin de l'URL, il doit aussi l'�tre du chemin du fichier.

Notez qu'il pourra s'av�rer n�cessaire de d�finir des sections <Directory> suppl�mentaires qui couvriront la destination des alias. Le traitement des alias intervenant avant le traitement des sections <Directory>, seules les cibles des alias sont affect�es (Notez cependant que les sections <Location> sont trait�es avant les alias, et s'appliqueront donc).

En particulier, si vous cr�ez un alias ayant pour cible un r�pertoire situ� en dehors de l'arborescence de votre site web DocumentRoot, vous devrez probablement permettre explicitement l'acc�s � ce r�pertoire.

Alias /image /ftp/pub/image
<Directory /ftp/pub/image>
    Require all granted
</Directory>
    

Le nombre de slashes dans le param�tre chemin URL doit correspondre au nombre de slashes dans le chemin URL de la requ�te.

top

AliasMatch Directive

Description:Met en correspondance des URLs avec le syst�me de fichiers en faisant intervenir les expressions rationnelles
Syntaxe:AliasMatch regex chemin fichier|chemin r�pertoire
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_alias

Cette directive est identique � la directive Alias, mais fait appel aux expressions rationnelles, � 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 /icons, on peut utiliser :

      AliasMatch ^/icons(.*) /usr/local/apache/icons$1
    

Toute la puissance des expressions rationnelles peut �tre mise � contribution. Par exemple, il est possible de construire un alias avec un mod�le de chemin URL insensible � la casse :

      AliasMatch (?i)^/image(.*) /ftp/pub/image$1
    

Il existe une diff�rence subtile entre Alias et AliasMatch : Alias 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 AliasMatch 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.

En d'autres termes, le remplacement d'Alias par AliasMatch ne produira pas le m�me r�sultat. Au minimum, vous devez ajouter ^ au d�but de l'expression rationnelle, (.*)$ � sa fin et $1 � la fin de la cha�ne de remplacement.

Par exemple, supposons que nous voulions reformuler cet alias avec AliasMatch :

      Alias /image/ /ftp/pub/image/
    

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/ :

      AliasMatch /image/ /ftp/pub/image/
    

Voici la directive AliasMatch qui produira le m�me r�sultat que la directive Alias ci-dessus :

      AliasMatch ^/image/(.*)$ /ftp/pub/image/$1
    

Bien entendu, il n'y a aucune raison d'utiliser AliasMatch dans le cas o� Alias suffit. AliasMatch 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 :

      AliasMatch ^/image/(.*)\.jpg$ /fichiers/jpg.images/$1.jpg
AliasMatch ^/image/(.*)\.gif$ /fichiers/gif.images/$1.gif

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.

top

Redirect Directive

Description:Envoie une redirection externe demandant au client d'effectuer une autre requ�te avec une URL diff�rente
Syntaxe:Redirect [�tat] chemin URL URL
Contexte:configuration du serveur, serveur virtuel, r�pertoire, .htaccess
AllowOverride:FileInfo
Statut:Base
Module:mod_alias

La directive Redirect permet de faire correspondre une ancienne URL � une nouvelle en demandant au client d'aller chercher la ressource � une autre localisation.

L'ancien chemin URL 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.

La nouvelle URL 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.

Ensuite, toute requ�te commen�ant par chemin URL va renvoyer une redirection au client vers l'URL cible. Tout �l�ment de chemin suppl�mentaire situ� en aval du chemin URL sera ajout� � l'URL cible.

# 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
    

Si le client effectue une requ�te pour l'URL http://example.com/service/foo.txt, il lui sera demand� d'en effectuer une autre pour l'URL http://foo2.example.com/service/foo.txt. Ceci concerne les requ�tes avec param�tres GET, comme http://example.com/service/foo.pl?q=23&a=42, qui seront redirig�es vers http://foo2.example.com/service/foo.pl?q=23&a=42. Notez que les POSTs seront ignor�s.
Seuls les �l�ments de chemin complets sont test�s, si bien que l'exemple pr�c�dent ne s'appliquera pas � l'URL http://example.com/servicefoo.txt. Pour des mises en correspondance plus complexes faisant intervenir les expressions rationnelles, veuillez vous reporter � la directive RedirectMatch.

Note

Les directives de redirection ont priorit� sur les directives Alias et ScriptAlias, quel que soit leur ordre d'apparition dans le fichier de configuration.

Si aucun argument �tat 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 �tat pour renvoyer d'autres codes HTTP :

permanent
Renvoie un code de redirection permanente (301), indiquant que la ressource a �t� d�finitivement d�plac�e.
temp
Renvoie un code de redirection temporaire (302). C'est le comportement par d�faut.
seeother
Renvoie un code "See Other" (303) indiquant que la ressource a �t� remplac�e par une autre.
gone
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 URL.

On peut renvoyer d'autres codes en sp�cifiant le code num�rique comme valeur de l'argument of �tat. Si le code est compris entre 300 et 399, l'argument URL doit �tre pr�sent. Si le code n'est pas compris entre 300 et 399, l'argument URL ne doit pas appara�tre. Le code doit �tre un code HTTP valide, connu du serveur HTTP Apache (voir la fonction send_error_response dans http_protocol.c).

Redirect permanent /one http://example.com/two
Redirect 303 /three http://example.com/other
    
top

RedirectMatch Directive

Description:Envoie une redirection externe faisant appel aux expressions rationnelles pour la mise en correspondance de l'URL courante
Syntaxe:RedirectMatch [�tat] regex URL
Contexte:configuration du serveur, serveur virtuel, r�pertoire, .htaccess
AllowOverride:FileInfo
Statut:Base
Module:mod_alias

Cette directive est identique � la directive Redirect, mais fait appel aux expressions rationnelles, � 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 :

      RedirectMatch (.*)\.gif$ http://autre.example.com$1.jpg
    

Les remarques � propos de la diff�rence entre Alias et AliasMatch s'appliquent aussi � la diff�rence entre les directives Redirect et RedirectMatch. Voir la directive AliasMatch pour plus de d�tails.

top

RedirectPermanent Directive

Description:Envoie une redirection externe permanente demandant au client d'effectuer une nouvelle requ�te avec une URL diff�rente
Syntaxe:RedirectPermanent chemin URL URL
Contexte:configuration du serveur, serveur virtuel, r�pertoire, .htaccess
AllowOverride:FileInfo
Statut:Base
Module:mod_alias

Cette directive informe le client que la redirection est permanente (code 301). Son comportement est exactement le m�me que celui de Redirect permanent.

top

RedirectTemp Directive

Description:Envoie une redirection externe temporaire demandant au client d'effectuer une nouvelle requ�te avec une URL diff�rente
Syntaxe:RedirectTemp chemin URL URL
Contexte:configuration du serveur, serveur virtuel, r�pertoire, .htaccess
AllowOverride:FileInfo
Statut:Base
Module:mod_alias

Cette directive informe le client que la redirection n'est que temporaire (code 302). Son comportement est exactement le m�me que celui de Redirect temp.

top

ScriptAlias Directive

Description:Fait correspondre une URL � une zone du syst�me de fichiers et d�signe la cible comme script CGI
Syntaxe:ScriptAlias chemin URL chemin fichier|chemin r�pertoire
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_alias

La directive ScriptAlias pr�sente le m�me comportement que la directive Alias, 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 mod_cgi. Les URLs dont le chemin URL sensible � la casse (d�cod� avec caract�res %) commence par chemin URL 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.

      ScriptAlias /cgi-bin/ /web/cgi-bin/
    

Une requ�te pour http://example.com/cgi-bin/foo ferait ex�cuter par le serveur le script /web/cgi-bin/foo. Cette configuration est sensiblement �quivalente � :

Alias /cgi-bin/ /web/cgi-bin/
<Location /cgi-bin >
    SetHandler cgi-script
    Options +ExecCGI
</Location>
    

Vous pouvez aussi utiliser ScriptAlias avec un script ou gestionnaire de votre cru. Par exemple :

	  ScriptAlias /cgi-bin/ /web/cgi-handler.pl
    

Dans ce sc�nario, tous les fichiers faisant l'objet d'une requ�te dans /cgi-bin/ 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".

Il est pr�f�rable d'�viter de placer les scripts CGI dans l'arborescence de DocumentRoot afin d'�viter de r�v�ler accidentellement leur code source lors d'une modification de configuration. On y parvient ais�ment avec ScriptAlias 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 ScriptAlias. Utilisez plut�t <Directory>, SetHandler, et Options comme dans l'exemple suivant :
<Directory /usr/local/apache2/htdocs/cgi-bin >
    SetHandler cgi-script
    Options ExecCGI
</Directory>
    
Ceci est n�cessaire car plusieurs chemins URL peuvent correspondre � la m�me zone du syst�me de fichiers, court-circuitant ainsi la directive ScriptAlias et r�v�lant le code source des scripts CGI s'ils ne sont pas prot�g�s par une section Directory.

Voir aussi

top

ScriptAliasMatch Directive

Description: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
Syntaxe:ScriptAliasMatch regex chemin fichier|chemin r�pertoire
Contexte:configuration du serveur, serveur virtuel
Statut:Base
Module:mod_alias

Cette directive est �quivalente � la directive ScriptAlias, mais fait appel aux expressions rationnelles, � 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 /cgi-bin, on peut utiliser :

      ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
    

Comme dans le cas d'AliasMatch, toute la puissance des expressions rationnelles 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 :

      ScriptAliasMatch (?i)^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
    

Les remarques � propos de la diff�rence entre Alias et AliasMatch s'appliquent aussi � la diff�rence entre les directives ScriptAlias et ScriptAliasMatch. Voir la directive AliasMatch pour plus de d�tails.

Langues Disponibles:  en  |  fr  |  ja  |  ko  |  tr 

top

Commentaires

Notice:
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 mailing lists.