Não tenho certeza se é bom que você tenha várias diretivas NameVirtualHost *
.
Pelo que entendi sua pergunta, você quer um NAME Virtual Host puro e deseja que todas as interfaces em todas as portas sejam tratadas pelo Host NameVirtual.
Eu recomendo que você crie seus hosts assim:
# Use Virtual hosts for all interfaces on all ports
NameVirtualHost *
<VirtualHost *>
ServerName example.com
# all other settings for this hostname
</VirtualHost>
<VirtualHost *>
ServerName www.example.com
# all other settings for this hostname
</VirtualHost>
<VirtualHost *>
ServerName dfw.example.com
# all other settings for this hostname
</VirtualHost>
<VirtualHost *>
chris.example.com
# all other settings for this hostname
</VirtualHost>
## ssl.conf
<VirtualHost _default_:443>
ServerName www.example.com
# all other settings for this hostname
SSLEngine on
#certificate stuff
</VirtualHost>
E se você quiser usar as mesmas configurações para vários nomes de host (por exemplo, example.com e www.example.com), você pode simplesmente adicionar diretiva ServerAlias onde todos os nomes de hosts são listados (curingas como "* .example.com" são possíveis também).
por exemplo. um host virtual que corresponde a "example.com" e "www.example.com" poderia ser feito assim:
<VirtualHost *>
ServerName example.com
ServerAlias example.com www.example.com
# all other settings for this hostname
</VirtualHost>
p.s. Configurações como DirectoryIndex
ou LogLevel
você pode definir uma vez em sua configuração global. Seu host virtual terá a configuração global e você não precisará adicionar o mesmo valor a cada host.
Somente se um host precisar de uma configuração diferente dos valores globais, você deverá adicionar as configurações especiais neste host.