Caractères génériques ServerName dans les hôtes virtuels basés sur le nom Apache?

16

Sur notre réseau local, j'ai configuré plusieurs «faux» TLD dans le serveur DNS, avec l'intention de les utiliser pour l'hébergement virtuel basé sur le nom Apache. Je voudrais combiner cela avec un hébergement virtuel de masse (c'est-à-dire VirtualDocumentRoot) sur un serveur Ubuntu 10.04 LAMP.

Cependant, je n'arrive pas à sélectionner le bon vhost!

Voici un résumé de la configuration Apache:

NameVirtualHost 10.10.0.205

<VirtualHost 10.10.0.205>
   ServerName *.test
   VirtualDocumentRoot /var/www/%-3.0.%-2/test/%1/
   CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>

<VirtualHost 10.10.0.205>
   ServerName *.dev
   VirtualDocumentRoot /var/www/%-3.0.%-2/dev/%1/
   CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>

Un nom d'hôte tel que www.domain.com.dev , se résout correctement en 10.10.0.205, mais sélectionne toujours le vhost supérieur, au lieu du dernier, qui correspond plus étroitement.

J'avais l'impression qu'Apache essaierait d'abord de faire correspondre le ServerName avant de passer par défaut au vhost supérieur pour une IP donnée. Qu'est-ce que je fais mal? Ou n'est-ce pas possible et dois-je utiliser une autre IP pour chaque TLD?

Sorties apachectl -S (découpées):

10.10.0.205:*          is a NameVirtualHost
    default server *.test
    port * namevhost *.test
    port * namevhost *.dev
Martijn Heemels
la source

Réponses:

40

Utilisez ServerAliasplutôt que ServerNameseul:

ServerName somename.dev

ServerAlias *.dev

Mo.
la source
2
Les versions récentes d'Apache n'autoriseront même plus les caractères génériques dans ServerName, et l'erreur vous indique d'utiliser ServerAlias ​​à la place.
Quentin Skousen
Impressionnant. C'était rapide et précis. Def m'a fait gagner du temps. Merci.
Art Geigel
4

Si cela peut aider, juste pour compléter un peu la réponse de Mo:

Les caractères génériques dans ServerAlias ​​fonctionnent également sur les noms de domaine partiels, tels que

ServerName somename.dev

ServerAlias *-mysite.dev

Il m'a sauvé la vie récemment ^^ (un site principal avec des sous - domaines pour chaque sous application tels que admin-somename.dev, bo-somename.dev,api-somename.dev ...)

Sÿl
la source