Se bem me lembro, o comportamento dos hosts virtuais funciona assim:
-
httpd
procura o vhost com os qualificadores mais específicos. (seja o endereço IP ou o cabeçalho do host seNameVirtualHost
foi declarado) - Na falta de uma entrada específica, o host virtual primeiro a ser definido é usado. Isso é chamado de host virtual padrão e o que normalmente é exibido quando uma solicitação é feita sem um cabeçalho
Host
. (por exemplo, pelo endereço IP)
O problema que você está enfrentando agora é que o seu host virtual baseado em IP é mais específico do que seu host virtual padrão e pega-tudo (pelo menos quando o cabeçalho Host
não corresponde ao ServerName
ou ServerAlias
). Para obter o comportamento que você está procurando, acho que você precisa fazer isso:
- Crie um virtualhost padrão de *: 80 com uma página em branco.
- Ajuste seu
somesite.com
virtualhost para que seuServerAlias
contenha todos os nomes que você não deseja que atinjam o host virtual padrão.
Espero que alguém tenha uma solução que chegue mais perto de alcançar o resultado final desejado; já faz algum tempo e eu estaria interessado em aprender com isso.