Não misture as definições IP: port e *: port nas tags <VirtualHost>
, a menos que você seja um administrador Apache muito experiente e saiba exatamente o que está fazendo.
Qualquer domínio que resolva para 1.2.3.4
(em seu exemplo) será atendido por seu um vinculado a 1.2.3.4:80, independentemente do nome do host usado.
Se os nomes dos servidores e os alaises do servidor em seu host virtual *: 80 não forem resolvidos para 1.2.3.4, então algo está errado. Se eles resolverem esse IP, basta alterar você <VirtualHost 1.2.3.4:80>
para <Virtualhost *:80>
Comentário adicional: Se você tiver apenas 1 IP no seu servidor, use somente a versão *: port, isso evitará confusão
Mais comentários: Parte do problema pode ser a maneira como você está higienizando todos os nomes de domínio. isso deve ser feito de forma consistente, caso contrário nossos esforços serão em vão. A maneira como o apache decide para qual servidor enviar uma solicitação é o seguinte. Isso simplesmente funciona, qualquer bug nesse processo nunca poderia sobreviver até mesmo no teste mais básico para uma versão do Apache:
- Se a conexão for para um endereço IP específico e o apache tiver uma única tag
<VirtualHost>
correspondente para esse ip / port, esse host virtual receberá a solicitação - Se não, o apache examina as diretivas
ServerName
eServerAlias
de qualquer<VirtualHost>
que corresponda ao IP / porta na qual a conexão entrou e corresponde ao cabeçalhoHTTP Host
que veio com a solicitação. O primeiro<VirtualHost>
na saída deapachectl -S
que corresponde será o único a receber o pedido. - Se nenhuma correspondência for encontrada, o host virtual padrão para esse IP / porta receberá a solicitação. Este é o primeiro hjost virtual listado na saída de
apachectl -S
para uma combinação ip / port específica.
Lembre-se de que o IP pode ser apenas *
.