有没有办法为单个域设置一个catchall(对于子域)虚拟服务器,我有一个预先定义的子域。
即:
webmail.example.com – >指向“/ var / web / roundcube”
beta.example.com – >指向“/ var / web / beta /”
example.com和所有其他子域 – >指向“/ var / web / www”
<VirtualHost *:80> ServerName webmail.example.com ServerAdmin [email protected] DocumentRoot /var/web/roundcube <Directory /var/web/roundcube/> ... </Directory> ... </VirtualHost> <VirtualHost *:80> ServerName beta.example.com ServerAdmin [email protected] DocumentRoot /var/web/beta <Directory /var/web/beta/> ... </Directory> ... </VirtualHost> <VirtualHost *:80> ServerName example.com ServerAlias *.example.com ServerAdmin [email protected] DocumentRoot /var/web/www <Directory /var/web/www/> ... </Directory> ... </VirtualHost>
这应该工作得很好,这绝对是做你正在做的事情的正确方法!
ServerName或ServerAlias的精确匹配将胜过通配符ServerAlias ,而不pipe它们加载的顺序如何。 ServerName或ServerAlias指令都不匹配的请求(例如,用URL而不是主机名中的IP)来说很重要 – 这些请求将由第一个虚拟主机来加载。