Caracteres curinga ServerName em hosts virtuais baseados em nome do Apache?


16

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

Respostas:


40

Use ServerAlias, em vez de ServerNamesozinho:

ServerName somename.dev

ServerAlias *.dev


2
As versões recentes do apache não permitem mais curingas no ServerName, e o erro diz para você usar o ServerAlias.
Quentin Skousen

Impressionante. Isso foi rápido e direto ao ponto. Def me economizou tempo. Obrigado.
Art Geigel

4

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...)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.