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
ServerNameeServerAliasde qualquer<VirtualHost>que corresponda ao IP / porta na qual a conexão entrou e corresponde ao cabeçalhoHTTP Hostque veio com a solicitação. O primeiro<VirtualHost>na saída deapachectl -Sque 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 -Spara uma combinação ip / port específica.
Lembre-se de que o IP pode ser apenas * .