Решение в Вашем ответе:
<VirtualHost *:80>
ServerName www.company.com
ServerAlias company.com
DocumentRoot /path1
</VirtualHost>
<VirtualHost *:80>
ServerName *.company.com
DocumentRoot /path2
</VirtualHost>
Вежливое использование подстановочных знаков "ловит все" домены:
<VirtualHost *:80>
ServerName subdomain1.company.com
DocumentRoot /path/to/subdomain1
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain2.company.com
DocumentRoot /path/to/subdomain2
</VirtualHost>
<VirtualHost *:80>
ServerName company.com
ServerAlias *.company.com
DocumentRoot /path/to/primary/domain+catchall
</VirtualHost>
Обратите внимание, что порядок значим, всеобъемлющий домен должен быть последним. Это особенно полезно, чтобы избежать, чтобы ввод с опечатками в клиентском URL повысил "несуществующий хост" ошибка, позволив клиенту Вашей компании думать, что Вы - плохой администратор сервера (не его плохое печатающее устройство :P).