Use ServerAlias
, em vez de ServerName
sozinho:
ServerName somename.dev
ServerAlias *.dev
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
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
...)
Tags lamp virtualhost apache-2.2 ubuntu