apache 2.4 serverAlias with * wildcard overwrittes specificed vhost

时间:2017-11-12 13:34:16

标签: apache virtualhost apache2.4

我有两个vhosts默认值和另一个:

Package Name

这个应该只是将未专门设置的所有子域重定向到测试目录。 这是我的另一个幻想:

<VirtualHost *:80>
    ServerName www.eve-stuff.com
    ServerAlias *.eve-stuff.com
    DocumentRoot /var/www/html/test
    <Directory /var/www/html/test>
        Options +FollowSymLinks
        AllowOverride None
        #Require all denied
    </Directory>
</VirtualHost>

这个应该显示dev子域的dev文件夹。

根据我对apache doc的理解,第一个主机中的<VirtualHost *:80> ServerName dev.eve-stuff.com DocumentRoot /var/www/html/dev <Directory /var/www/html/dev> Options +FollowSymLinks AllowOverride None </Directory> </VirtualHost> 将始终捕获,除非专门为该地址创建了另一个vhost。

但是ServerAlias *.eve-stuff.com仍然会重定向到测试文件夹,而不是重定向到dev文件夹。

所有dns条目(也是子域名)都指向正确的IP。 我正在运行Apache / 2.4.18(Ubuntu)。

1 个答案:

答案 0 :(得分:0)

确定设置的顺序。 Apache显然寻找它能找到的匹配主机 由于第一个配置位于000-default.conf,第二个配置位于020-dev.conf,因此dev-subdomain与第一个vhost匹配并使用了它。
我将默认值更改为999-default.conf,这意味着现在dev将首先与正确的vhost匹配,但其他未定义的子域仍将与默认的vhost匹配。