Виртуальные хосты в 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).

Другие вопросы по тегам