ti-enxame.com

Apache nomeado virtualhosts com curingas

Eu quero mapear www.example.com para um host virtual específico e, em seguida, quero que todos os outros subdomínios do Exemplement.com irem para outro host virtual.

Para fazer isso, criei esses hosts:

<VirtualHost *:80>
  ServerName www.example.com
</VirtualHost>

<VirtualHost *:80>
  ServerName example.com
  ServerAlias *.example.com
</VirtualHost>

Agora a seleção de qual host é servido parece bastante aleatório. Se eu reiniciar o apache às vezes receberei um host e outras vezes outro.

O que estou fazendo de errado?

Obrigado!

Atualização: Se eu executar apache2ctl -s nesta configuração, obtenho esta Outpu:

Configuração do VirtualHost: 
 Servidores Wildcard NamevirtualHosts e _Default_: [.____] *: 80 é um NameVirtualHost 
 Servidor padrão www.example.com (/ etc/apache2/sites - Dev: 3 ) 
 Porta 80 NamevHost www.exampe.com (/etc/apache2/sites-enabled/dev:3)
 Porta 80 namevhost example.com (/ etc/apache2/sites-habilitados/dev : 22) [.____]

Depois de muito cavar, decidi desabilitar os aplicativos mono que eu tinha correndo e baixo e vejo que começou a servir arquivos do site correto. Eles precisavam ser inscritos na ordem:

<VirtualHost *:80>
  ServerName example.com
</VirtualHost>

<VirtualHost *:80>
  ServerName www.example.com
</VirtualHost>

como sugerido pelo assistente. Para obter meus aplicativos mono trabalhando, usei "MonoautoApplication habilitado" dentro de cada host virtual. No entanto, não tenho certeza de que esta é a melhor opção como no mono site Diz que você não deve usar o Auto Hosting para ASP.NET MVC Apps (que é o que estou usando). Até agora não consigo ver a desvantagem.

7
Derek Ekins

Atualização: * é sintaxe válida, mas não é necessário. Você pode descobrir mais aqui .

Isso vai funcionar embora.

<VirtualHost *:80>
   ServerName example.com
</VirtualHost>

<VirtualHost *:80>
    ServerName www.example.com
</VirtualHost>

A primeira diretiva corresponderá a tudo o que não é explicitamente definido em outro lugar.

3
reconbot