Виртуальные хосты в apache для *.company.com, а затем отдельный для www.company.com
Итак, у меня есть виртуальный сервер, настроенный для www.company.com:
<VirtualHost *:80>
ServerName www.company.com
</VirtualHost>
И тогда я хотел бы направить *.company.com на другой сайт. Как мне это сделать? Я мог бы подумать о WWW. и внутри. будучи направленным на конкретных vhosts, но "остальное" направлено на общий vhost.
Apache версия 2.2.4
1 ответ
Решение
Решение на ваш ответ:
<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>
Обратите внимание, что порядок имеет смысл, домен catchall должен быть последним. Это особенно полезно, чтобы избежать ошибочного ввода в URL-адресе клиента, приводящего к ошибке "несуществующий хост", позволяющей клиенту вашей компании думать, что вы плохой администратор сервера (а не плохой читатель:P).