Wildcards do ServerName nos hosts virtuais baseados no nome do Apache?

11

Em nossa LAN, eu configurei vários TLDs 'falsos' no servidor DNS, com a intenção de usá-los para hospedagem virtual baseada em nome do Apache. Eu gostaria de combinar isso com mass-virtual-hosting (ou seja, VirtualDocumentRoot) em um servidor Ubuntu 10.04 LAMP.

No entanto, não consigo selecionar o vhost certo!

Aqui está um resumo da configuração do 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>

Um hostname como www.domain.com.dev , resolve corretamente para 10.10.0.205, mas sempre seleciona o top vhost, ao invés do bottom, que combina mais de perto.

Eu tive a impressão de que o Apache primeiro tentaria corresponder ao ServerName antes de padronizar o top vhost para um determinado IP. O que estou fazendo de errado? Ou isso não é possível e devo usar outro IP para cada TLD?

saídas de apachectl-S (aparadas):

10.10.0.205:*          is a NameVirtualHost
    default server *.test
    port * namevhost *.test
    port * namevhost *.dev
    
por Martijn Heemels 07.05.2010 / 17:30

2 respostas

32

Use ServerAlias , em vez de ServerName sozinho:

ServerName somename.dev

ServerAlias *.dev

    
por 07.05.2010 / 17:32
2

Se isso puder ajudar, só para completar um pouco a resposta de Mo:

Caracteres curinga no ServerAlias também funcionam em nomes de domínio parciais, como

ServerName somename.dev

ServerAlias *-mysite.dev

Ele salvou minha vida recentemente ^^ (um site principal com subdomínios para cada sub app, por exemplo, admin-somename.dev , bo-somename.dev , api-somename.dev ...)

    
por 13.12.2015 / 22:03