Итак, у меня есть виртуальный сервер для www.company.com:
<VirtualHost *:80>
ServerName www.company.com
</VirtualHost>
А затем я хотел бы направить * .company.com на другой сайт. Как мне это сделать? Я мог подумать о www. и внутри. направлен на определенные хосты, а "остальное" - на общий хост.
Версия Apache - 2.2.4
Решение к вашему ответу:
<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).