Home > Admin serveur > Apache, VirtualHost et ServerAlias

Apache, VirtualHost et ServerAlias

Lorsqu’on adapte la configuration d’un serveur Apache pour gérer un nouveau domaine, il faut théoriquement créer autant de VirtualHosts que ce qu’on aura de sous-domaines. Et si chaque utilisateur enregistré devait avoir son propre sous-domaine (comme sur une plate-forme de blogs, par exemple) ?

Rien de plus simple, en fait… La directive ServerAlias permet d’utiliser des wildcards, pour désigner “tous les sous-domaines”. L’étoile (*) fonctionne alors comme une parenthèse capturante dans une expression régulière. La directive VirtualDocumentRoot, elle, accepte des paramètres en %N (où N est un nombre entier), avec N correspondant à la place de l’étoile dans la chaîne. %1 est la première chaîne qui a matché une étoile.

Pas clair ? Ok, un exemple :

  1. <VirtualHost *>
  2.         ServerName domain.tld
  3.         ServerAlias *.domain.tld
  4.         VirtualDocumentRoot /var/www/domain.tld/%1/
  5. </VirtualHost>

Pas plus compliqué… Le * va capturer le sous-domaine et le passer au VirtualDocumentRoot. Donc pour test.domain.tld, on tombera dans /var/www/domain.tld/test/.

Dans le <VirtualHost>, après un VirtualDocumentRoot, on peut utiliser des directives comme d’habitude. (Je n’ai pas essayé d’y reprendre le %1, pour modifier les options de configuration de l’ensemble des dossiers “virtuels”… quelqu’un sait si ça marche ?)

Ce post vous a été utile ? Re-Twittez le ! ReTwittez ce post

Admin serveur , , , , ,

  1. | #1

    Ca marche aussi avec ServerName * ?

    Sinon une petite remarque, j’ai repéré une faute de frappe sur ton site : dans le footer, tu as écris “et parce qu’il faut bien manger : ” au lieu de “et parce qu’il faut bien boire : “, c’est fait exprès ?

  1. No trackbacks yet.