De longe, a maneira mais fácil de fazer isso é criar um registro DNS de caractere curinga para example.com. por exemplo
*.example.com. 14400 A 10.10.10.10
ou um CNAME
*.example.com CNAME example.com.
Lembre-se de que o Apache exibirá o conteúdo do primeiro vhost cujo ServerName ou < a href="http://httpd.apache.org/docs/2.2/mod/core.html#serveralias"> Serveralias correspondia a Host: cabeçalho na solicitação http. Se nenhuma delas corresponder, o conteúdo do primeiro vhost definido será exibido, pois é considerado o vhost padrão.
Para obter o apache para o conteúdo do servidor, a maneira mais fácil é usar a hospedagem NameBasedVirtual .
Se você quiser server o mesmo conteúdo de cada vhost, basta definir um
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
...
</VirtualHost>
Se você deseja veicular conteúdo diferente (mas o mesmo) de sub1.example.com e sub2.example.com, faça isso em linha
NameVirtualHost *:80
<VirtualHost *:80>
ServerName sub1.example.com
ServerAlias sub2.example.com
DocumentRoot /var/www/sub1sub2
...
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
...
</VirtualHost>
e assim por diante.
Se você tiver muitos vhosts para configurar e configurar, talvez queira dar uma olhada nos configurados dinamicamente do Apache. documentação de hospedagem em massa .