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.
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 :
L'insertion est contrôlée par des spécificateurs inspirés de printf et possédant de nombreux formats :
UseCanonicalName Off VirtualDocumentRoot "/usr/local/apache/vhosts/%0"
http://www.example.com/repertoire/fichier.html → /usr/local/apache/vhosts/www.example.com/repertoire/fichier.html.
UseCanonicalName Off VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2"
http://www.domaine.example.com/repertoire/fichier.html → /usr/local/apache/vhosts/example.com/d/o/m/domaine/repertoire/fichier.html.
VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2"
http://www.domaine.example.com/repertoire/fichier.html → /usr/local/apache/vhosts/example.com/e/n/i/domaine/repertoire/fichier.html.
VirtualDocumentRoot "/usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+"
http://www.domaine.example.com/repertoire/fichier.html → /usr/local/apache/vhosts/example.com/d/o/m/aine/repertoire/fichier.html.
VirtualDocumentRoot "/usr/local/apache/vhosts/%-2.0.%-1.0"
Dans l'exemple ci-dessus, www.example.com, www.sub.example.com ou example.com → /usr/local/apache/vhosts/example.com.
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 → /usr/local/apache/vhosts/10/20/30/40/docs/repertoire/fichier.html
http://www.domaine.example.com/cgi-bin/script.pl → /usr/local/apache/vhosts/10/20/30/40/cgi-bin/script.pl.
VirtualDocumentRoot "/usr/local/apache/vhosts/%2.0.%3.0"
http://www.domaine.example.com/repertoire/fichier.html → /usr/local/apache/vhosts/domaine.exemple/repertoire/fichier.html.
VirtualDocumentRoot répertoire-interpolé|none
VirtualDocumentRoot none
VirtualDocumentRootIP répertoire-interpolé|none
VirtualDocumentRootIP none
VirtualScriptAlias répertoire-interpolé|none
VirtualScriptAlias none
VirtualScriptAliasIP répertoire-interpolé|none
VirtualScriptAliasIP none