Назад | Перейти на главную страницу

Apache2 VirtualHosts и поддомены с подстановочными знаками

Есть ли способ настроить общий (для поддоменов) виртуальный сервер для одного домена, где у меня есть пара предопределенных поддоменов.

то есть:

webmail.example.com -> указывает на "/ var / web / roundcube"

beta.example.com -> указывает на "/ var / web / beta /"

example.com и все другие поддомены -> укажите на "/ var / web / www"

<VirtualHost *:80>
    ServerName webmail.example.com
    ServerAdmin webmaster@example.com

    DocumentRoot /var/web/roundcube
    <Directory /var/web/roundcube/>
        ...
    </Directory>
...
</VirtualHost>

<VirtualHost *:80>
    ServerName beta.example.com
    ServerAdmin webmaster@example.com

    DocumentRoot /var/web/beta
    <Directory /var/web/beta/>
        ...
    </Directory>
...
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    ServerAlias *.example.com
    ServerAdmin webmaster@example.com

    DocumentRoot /var/web/www
    <Directory /var/web/www/>
        ...
    </Directory>
...
</VirtualHost>

Это должно работать нормально, и это определенно правильный способ делать то, что вы пытаетесь сделать!

  • Порядок загрузки не имеет значения в вашем примере, поскольку эти виртуальные хосты охватывают все домены, для которых вы обслуживаете контент.
    • Точное совпадение с ServerName или ServerAlias превзойдет подстановочный знак ServerAlias, независимо от порядка их загрузки.
    • Порядок загрузки имеет значение для запросов, которые не соответствуют ни одному из ServerName или ServerAlias директивы любым способом (например, с IP-адресом в URL-адресе вместо имени хоста) - эти запросы будут обслуживаться первым виртуальным хостом для загрузки.