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

Module Apache mod_vhost_alias

Langues Disponibles:  en  |  fr  |  tr 

Description:Permet de configurer dynamiquement l'h�bergement virtuel de masse
Statut:Extension
Identificateur�de�Module:vhost_alias_module
Fichier�Source:mod_vhost_alias.c

Sommaire

Ce module permet de cr�er des serveurs virtuels configur�s dynamiquement, en autorisant l'utilisation de l'adresse IP et/ou de l'en-t�te Host: de la requ�te HTTP comme partie du nom de chemin afin de d�terminer les fichiers � servir. Ceci facilite la gestion d'un grand nombre de serveurs virtuels poss�dant des configurations similaires.

Note

Si les modules mod_alias ou mod_userdir sont utilis�s pour traduire les URIs en noms de fichiers, ils l'emportent sur les directives du module mod_vhost_alias d�crites ci-dessous. Par exemple, la configuration suivante fera correspondre /cgi-bin/script.pl � /usr/local/apache2/cgi-bin/script.pl dans tous les cas :

ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
VirtualScriptAlias /never/found/%0/cgi-bin/
      

Directives

Sujets

Voir aussi

top

Interpolation du nom de r�pertoire

Toutes les directives de ce module ins�rent une cha�ne dans un nom de chemin. La cha�ne ins�r�e (que nous appellerons maintenant le "nom") peut �tre soit le nom du serveur (voir la directive UseCanonicalName pour les d�tails sur la mani�re dont il est d�termin�), soit l'adresse IP du serveur virtuel h�berg� par le serveur sous la forme d'un quadruplet d'octets s�par�s par des points. L'insertion est contr�l�e par des sp�cificateurs inspir�s de printf et poss�dant de nombreux formats :

%% ins�re un %
%p ins�re le num�ro de port du serveur virtuel
%N.M ins�re le nom (en partie)

N et M permettent de sp�cifier des sous-cha�nes du nom. N s�lectionne un des composants du nom s�par�s par des points, et M s�lectionne des caract�res � l'int�rieur de ce que N a s�lectionn�. M est optionnel et sa valeur par d�faut est 0 s'il n'est pas sp�cifi� ; le point doit �tre pr�sent si et seulement si M l'est aussi. Les modes d'insertion sont les suivants :

0 le nom en entier
1 la premi�re partie
2 la seconde partie
-1 la derni�re partie
-2 l'avant-derni�re partie
2+ toutes les parties � partir de la seconde
-2+ toutes les parties jusqu'� l'avant-derni�re
1+ et -1+ identique � 0

Si N ou M est plus grand que le nombre de parties disponibles, seul un caract�re de soulignement est ins�r�.

top

Exemples

Pour des serveurs virtuels simples � base de nom, utilisez les directives suivantes dans le fichier de configuration de votre serveur :

UseCanonicalName    Off
VirtualDocumentRoot /usr/local/apache/vhosts/%0
    

Une requ�te pour http://www.example.com/repertoire/fichier.html concernera alors la ressource /usr/local/apache/vhosts/www.example.com/repertoire/fichier.html.

Pour un tr�s grand nombre de serveurs virtuels, il est avantageux d'organiser les fichiers de fa�on � r�duire la taille du r�pertoire vhosts. Pour ce faire, ins�rez les lignes suivantes dans votre fichier de configuration :

UseCanonicalName    Off
VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2
    

Une requ�te pour http://www.domaine.example.com/repertoire/fichier.html concernera alors la ressource /usr/local/apache/vhosts/example.com/d/o/m/domaine/repertoire/fichier.html.

Une r�partition plus r�guli�re des fichiers peut �tre obtenue en partant de la fin d'un composant du nom, comme dans l'exemple suivant :

    VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2

La requ�te pr�c�dente concernerait alors /usr/local/apache/vhosts/example.com/e/n/i/domaine/repertoire/fichier.html.

Vous pouvez �galement utiliser :

    VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+

La requ�te pr�c�dente concernerait alors /usr/local/apache/vhosts/example.com/d/o/m/aine/repertoire/fichier.html.

Une demande tr�s courante des utilisateurs concerne la possibilit� de faire correspondre plusieurs racines de documents � plusieurs domaines, sans avoir � se pr�occuper de la longueur ou du nombre de parties du nom d'h�te faisant partie de la requ�te. Si le nom d'h�te de la requ�te est sub.www.domain.example.com au lieu de simplement www.domain.example.com, alors en utilisant %3+, la racine des documents sera /usr/local/apache/vhosts/domain.example.com/... au lieu du r�pertoire example.com attendu. Dans ce genre de situation, il peut s'av�rer pr�f�rable d'utiliser la combinaison %-2.0.%-1.0 qui fournira toujours le nom de domaine et le tld, par exemple example.com sans tenir compte du nombre de sous-domaines ajout�s au nom d'h�te. Dans ces conditions, il est possible d'�laborer une configuration qui associera les sous-domaines de premier, second et troisi�me niveau au m�me r�pertoire :

    VirtualDocumentRoot "/usr/local/apache/vhosts/%-2.0.%-1.0"

Dans l'exemple ci-dessus, www.example.com, www.sub.example.com ou example.com correspondront tous au r�pertoire /usr/local/apache/vhosts/example.com.

Pour l'h�bergement virtuel � base d'adresse IP, vous pouvez ins�rer les lignes suivantes dans votre fichier de configuration :

UseCanonicalName DNS
VirtualDocumentRootIP /usr/local/apache/vhosts/%1/%2/%3/%4/docs
VirtualScriptAliasIP  /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin
    

Si l'adresse IP de www.domaine.example.com est 10.20.30.40, une requ�te pour http://www.domaine.example.com/repertoire/fichier.html concernera la ressource /usr/local/apache/vhosts/10/20/30/40/docs/repertoire/fichier.html. Une requ�te pour http://www.domaine.example.com/cgi-bin/script.pl concernera la ressource /usr/local/apache/vhosts/10/20/30/40/cgi-bin/script.pl.

Si vous voulez ins�rer le caract�re . dans une directive VirtualDocumentRoot, et si cela cr�e un conflit avec un sp�cificateur %, vous pouvez contourner le probl�me de la mani�re suivante :

    VirtualDocumentRoot /usr/local/apache/vhosts/%2.0.%3.0

Une requ�te pour http://www.domaine.example.com/repertoire/fichier.html concernera alors la ressource /usr/local/apache/vhosts/domaine.exemple/repertoire/fichier.html.

Les sp�cificateurs de format %V et %A de la directive LogFormat s'av�rent tr�s utiles lorsqu'ils sont utilis�s en conjonction avec ce module.

top

VirtualDocumentRoot Directive

Description:Permet une configuration dynamique de la racine des documents d'un serveur virtuel donn�
Syntaxe:VirtualDocumentRoot r�pertoire-interpol�|none
D�faut:VirtualDocumentRoot none
Contexte:configuration du serveur, serveur virtuel
Statut:Extension
Module:mod_vhost_alias

La directive VirtualDocumentRoot vous permet de sp�cifier o� le serveur HTTP Apache pourra trouver vos documents en se basant sur le nom du serveur. Le r�sultat de l'expansion du r�pertoire-interpol� est utilis� comme racine de l'arborescence des documents d'une mani�re similaire � l'argument de la directive DocumentRoot. Si r�pertoire-interpol� a pour valeur none, la directive VirtualDocumentRoot est d�sactiv�e. Cette directive ne peut pas �tre utilis�e dans le m�me contexte que la directive VirtualDocumentRootIP.

Note

La directive VirtualDocumentRoot l'emporte sur toute directive DocumentRoot d�finie dans le m�me contexte ou dans des contextes enfants. Le fait de d�finir une directive VirtualDocumentRoot dans le contexte du serveur principal va effectivement l'emporter sur toute directive DocumentRoot d�finie dans un serveur virtuel quelconque, si vous n'avez pas d�fini VirtualDocumentRoot � None dans ce serveur virtuel.
top

VirtualDocumentRootIP Directive

Description:Configuration dynamique de la racine des documents pour un serveur virtuel donn�
Syntaxe:VirtualDocumentRootIP r�pertoire-interpol�|none
D�faut:VirtualDocumentRootIP none
Contexte:configuration du serveur, serveur virtuel
Statut:Extension
Module:mod_vhost_alias

La directive VirtualDocumentRootIP est identique � la directive VirtualDocumentRoot � l'exception pr�s qu'elle utilise l'adresse IP du serveur virtuel pour l'interpolation du r�pertoire � la place du nom du serveur.

top

VirtualScriptAlias Directive

Description:Configuration dynamique du r�pertoire des scripts CGI pour un serveur virtuel donn�
Syntaxe:VirtualScriptAlias r�pertoire-interpol�|none
D�faut:VirtualScriptAlias none
Contexte:configuration du serveur, serveur virtuel
Statut:Extension
Module:mod_vhost_alias

La directive VirtualScriptAlias vous permet de sp�cifier o� Apache httpd pourra trouver les scripts CGI selon une m�thode similaire � celle qu'utilise la directive VirtualDocumentRoot pour les autres documents. Elle recherche des requ�tes dont l'URI commence par /cgi-bin/, comme le ferait la directive ScriptAlias.

top

VirtualScriptAliasIP Directive

Description:Configuration dynamique du r�pertoire des scripts CGI pour un serveur virtuel donn�
Syntaxe:VirtualScriptAliasIP r�pertoire-interpol�|none
D�faut:VirtualScriptAliasIP none
Contexte:configuration du serveur, serveur virtuel
Statut:Extension
Module:mod_vhost_alias

La directive VirtualScriptAliasIP est identique � la directive VirtualScriptAlias � l'exception pr�s qu'elle utilise l'adresse IP du serveur virtuel pour l'interpolation du r�pertoire � la place du nom du serveur.

Langues Disponibles:  en  |  fr  |  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.