Apache2双站点配置问题:www.second-site.example指向主站点异常
解决Apache中www.second-site.example指向主站点的问题
这是Apache虚拟主机配置里非常常见的问题,我来给你拆解下原因和解决办法:
问题根源
Apache的虚拟主机匹配逻辑是这样的:当收到一个请求时,它会先找和请求域名完全匹配的ServerName或者ServerAlias;如果找不到任何匹配项,就会默认把请求转发到配置文件中第一个定义的<VirtualHost>块。
你现在的配置里,第二个站点只设置了ServerName second-site.example,完全没管www.second-site.example这个子域名。所以当用户访问www.second-site.example时,Apache找不到对应的匹配规则,就自动把请求转到第一个虚拟主机(也就是你的主站点)了。
快速修复方案
只需要给第二个虚拟主机添加一行ServerAlias,把www子域名包含进去就行:
<VirtualHost *:80> ServerAdmin hello@example.com DocumentRoot /var/www/example.com/public_html/ ServerName second-site.example ServerAlias www.second-site.example # 新增这个别名 </VirtualHost>
验证并生效
- 先检查配置有没有语法错误:
apache2ctl configtest
看到Syntax OK就说明没问题。
2. 重启Apache服务让修改生效:
systemctl restart apache2
做完这两步,再访问www.second-site.example,就会正确指向你的第二个站点了。
内容的提问来源于stack exchange,提问作者Pop Alexandru
相关产品推荐
相关产品推荐

