O Apache nunca corresponde a um host virtual com um ServerName diferente

1

eu tenho um problema. Eu tenho um VirtualHost para domain1.com no IP 1.2.3.4, mas o Apache responder ao pedido para o IP 1.2.3.4 ignorando o ServerName.

Então, se eu apontar o domínio2.com para o 1.2.3.4 eu vejo o conteúdo do /var/www/html/domain1.com e não o conteúdo do / var / www / html / default

O que está errado?

Listen 80
NameVirtualHost 1.2.3.4:80
<VirtualHost 1.2.3.4:80>
SSLEngine off
DocumentRoot /var/www/html/domain1.com
ServerName www.domain1.com:80
<Directory "/var/www/html/domain1.com">
allow from all
</Directory>
  LogLevel notice
UseCanonicalName on
</VirtualHost>

<VirtualHost _default_:80>
DocumentRoot /var/www/html/default
<Directory /var/www/html/default>
allow from all
</Directory>
</VirtualHost>
    
por Francesco Ricci 07.07.2015 / 16:31

1 resposta

3

Seu uso de _default_ aqui corresponderá aos IPs que não foram definidos para outro VirtualHost . Isso significa que uma solicitação para 1.2.3.4:80 de acordo com sua configuração usará a primeira VirtualHost definida para www.domain1.com . A prioridade de VirtualHost é definida por sua ordem no arquivo de configuração.

Para obter a configuração desejada, mova seu VirtualHost padrão acima de www.domain1.com one e altere seu IP de _default_ para 1.2.3.4 .

Mais informações sobre as especificidades disso estão listadas no manual do Apache, que você pode encontrar neste link .

    
por 07.07.2015 / 16:42