Em nossa LAN, 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 hospedagem virtual em massa (ou seja, VirtualDocumentRoot) em um servidor LAMP Ubuntu 10.04.
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 nome de host, tais como www.domain.com.dev , resolve correctamente para 10.10.0.205, mas selecciona sempre o topo vHost, em vez da uma parte inferior, o que corresponde mais de perto.
Fiquei com a impressão de que o Apache tentaria primeiro corresponder ao ServerName antes de usar o vhost superior 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 apachectl -S (aparadas):
10.10.0.205:* is a NameVirtualHost
default server *.test
port * namevhost *.test
port * namevhost *.dev
fonte
Se isso puder ajudar, basta preencher um pouco a resposta de Mo:
Os curingas 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 aplicativo, como
admin-somename.dev
,bo-somename.dev
,api-somename.dev
...)fonte