具有多个站点的服务器上的 Apache2 通配符子域

具有多个站点的服务器上的 Apache2 通配符子域

我有一台 Apache 服务器,其中有多个使用各自域名的站点。我希望其中一个站点拥有通配符子域名。

我已经设置了域记录*.example.com并且它运行良好。

通过这个,我可以配置任何子域名(例如abc.example.com)指向任何站点,只要我指定子域名即可。

但是,通配符域名(*.example.com)最终位于配置的站点上,/etc/apache2/sites-available/default而不是具有的站点上ServerName *.example.com

我做错了什么?

*.example.com

<VirtualHost *:80>
    ServerName *.example.com
    ServerAlias abc.example.com

    DocumentRoot /var/www/example
    <Directory /var/www/example>
        AllowOverride all
        Options -MultiViews
        Allow from all
    </Directory>
</VirtualHost>

默认

<VirtualHost *:80>
    ServerName default.com
    ServerAlias www.default.com

    DocumentRoot /var/www/default/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/default/>
        Options FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

答案1

尝试像这样切换 ServerName / ServerAlias 指令:

ServerName abc.example.com
ServerAlias *.example.com

据我所知,通配符仅适用于 ServerAlias 指令。

相关内容