我有一台 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 指令。