Se bem me lembro, o comportamento dos hosts virtuais funciona assim:
-
httpdprocura o vhost com os qualificadores mais específicos. (seja o endereço IP ou o cabeçalho do host seNameVirtualHostfoi 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.comvirtualhost para que seuServerAliascontenha 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.