+<Macro VHost $name $domain>
+<VirtualHost *:80>
+ ServerName $domain
+ ServerAlias www.$domain
+
+ DocumentRoot /var/www/vhosts/$name
+ ErrorLog /var/log/httpd/$name.error_log
+ CustomLog /var/log/httpd/$name.access_log combined
+</VirtualHost>
+</Macro>
+</highlight>
+
+<p>Comme les directives de configuration httpd, les noms des macros sont
+insensibles à la casse, à la différence des variables qui y sont, elles,
+sensibles.</p>
+
+<p>Vous pouvez alors invoquer cette macro autant de fois que vous le
+voulez pour créer des serveurs virtuels </p>
+
+<highlight language="config">
+Use VHost example example.com
+Use VHost myhost hostname.org
+Use VHost apache apache.org
+
+UndefMacro VHost
+ </highlight>
+
+<p>Au démarrage du serveur, chacune de ces invocations
+<directive>Use</directive> sera remplacée par une définition de serveur
+virtuel complète, comme décrit dans la définition de la
+<directive>Macro</directive>.</p>
+
+<p>La directive <directive>UndefMacro</directive> permet d'éviter les
+conflits de définitions qui pourraient provenir de l'utilisation
+ultérieure de macros contenant les mêmes noms de variables.</p>
+
+<p>Vous trouverez une version plus élaborée de cet exemple plus loin
+dans la section Exemples.</p>
+
+</section>
+
+<section id="tips"><title>Conseils</title>
+
+<p>Les noms de paramètres doivent commencer par un sigil tel que
+<code>$</code>, <code>%</code>, ou <code>@</code>, de façon à ce qu'ils
+soient clairement identifiables, mais aussi afin de faciliter les
+interactions avec les autres directives, comme la directive de base
+<directive module="core">Define</directive>. Dans le cas contraire, vous
+recevrez un avertissement. En tout état de cause, il est conseillé
+d'avoir une bonne connaissance globale de la configuration du serveur,
+afin d'éviter la réutilisation des mêmes variables à différents niveaux,
+ce qui peut être à l'origine de confusions.</p>
+
+<p>Les paramètres préfixés par <code>$</code> ou <code>%</code> ne sont
+pas échappés. Les paramètres préfixés par <code>@</code> sont échappés
+entre guillemets.</p>
+
+<p>Evitez de préfixer un paramètre par le nom d'un autre paramètre (par
+exemple, présence simultanée des paramètres <code>$win</code> et
+<code>$winter</code>), car ceci peut introduire de la confusion lors de
+l'évaluation des expressions. Si cela se produit, c'est le nom de
+paramètre le plus long possible qui sera utilisé.</p>
+
+<p>Si vous désirez insérer une valeur dans une chaîne, il est conseillé
+de l'entourer d'accolades afin d'éviter toute confusion :</p>
+
+<highlight language="config">
+<Macro DocRoot ${docroot}>
+ DocumentRoot /var/www/${docroot}/htdocs
+</Macro>
+</highlight>
+
+</section>
+
+<section id="examples">
+<title>Exemples</title>
+
+<section>
+<title>Définition de serveurs virtuels</title>
+
+<p>Un exemple typique d'utilisation de <module>mod_macro</module> est la
+création dynamique de serveurs virtuels.</p>
+
+<highlight language="config">
+## Définition d'une macro VHost pour les configurations répétitives
+
+<Macro VHost $host $port $dir>
+ Listen $port
+ <VirtualHost *:$port>
+
+ ServerName $host
+ DocumentRoot $dir
+
+ # Racine des documents publique
+ <Directory $dir>
+ Require all granted
+ </Directory>
+
+ # restriction d'accès au sous-répertoire intranet.
+ <Directory $dir/intranet>
+ Require ip 10.0.0.0/8
+ </Directory>
+ </VirtualHost>
+</Macro>
+
+## Utilisation de la macro VHost avec différents arguments.
+
+Use VHost www.apache.org 80 /vhosts/apache/htdocs
+Use VHost example.org 8080 /vhosts/example/htdocs
+Use VHost www.example.fr 1234 /vhosts/example.fr/htdocs
+</highlight>
+</section> <!-- Vhosts -->
+
+<section>
+<title>Suppression d'une définition de macro</title>
+
+<p>Il est recommandé de supprimer la définition d'une macro après
+l'avoir utilisée. Ceci permet d'éviter les confusions au sein d'un
+fichier de configuration complexe où des conflits entre noms de
+variables peuvent survenir.</p>
+
+<highlight language="config">