You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu/Apache多站点HTTP访问显示其他站点内容问题求助

解决你的Apache虚拟主机HTTP跳转问题

嗨,我来帮你搞定这个问题~你碰到的核心问题其实很明确:HTTP协议下的裸域名bbbbb.com没有对应的虚拟主机配置,Apache在找不到匹配的虚拟主机时,会自动用第一个加载的虚拟主机(也就是www.aaaaa.com的配置),所以才会显示错误的内容。而HTTPS的https://bbbbb.com正常,是因为你的SSL配置里已经包含了这个裸域名的匹配规则,或者证书覆盖了它。

下面是具体的解决步骤,一步步来就行:

1. 先确认当前的虚拟主机状态

先跑个命令看看Apache现在加载的所有虚拟主机,这样能明确问题所在:

apache2ctl -S

执行后你会看到,*:80(HTTP端口)下面没有bbbbb.com的条目,第一个出现的就是www.aaaaa.com的配置,这就是为什么访问http://bbbbb.com会跳过去的原因。

2. 给裸域名配置HTTP跳转(推荐强制HTTPS)

最合理的做法是把所有HTTP的bbbbb.com和www.bbbbb.com请求都强制跳转到HTTPS,既解决内容错误,又更安全。

去/etc/apache2/sites-available/目录下,新建一个配置文件(比如叫bbbbb-http.conf),或者修改你现有的HTTP配置文件,添加以下内容:

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

    # 这里直接跳转到HTTPS的www版本,如果你想跳转到裸域名的HTTPS,把后面改成https://bbbbb.com/就行
    Redirect permanent / https://www.bbbbb.com/
</VirtualHost>

3. 启用配置并重启Apache

配置写完后,先启用这个站点配置:

a2ensite bbbbb-http.conf

然后重启Apache让配置生效:

systemctl restart apache2

4. 验证效果

再跑一次apache2ctl -S,确认*:80下面已经有bbbbb.com和www.bbbbb.com的条目了。之后访问http://bbbbb.com,应该会自动跳转到HTTPS的正确页面,显示你预期的内容。

额外提醒

  • 记得确认你的SSL证书包含了bbbbb.com这个裸域名哦,很多证书默认会覆盖主域名和www子域名,但保险起见还是查一下,如果没包含的话,得重新申请覆盖该域名的证书。
  • 如果之前你已经有www.bbbbb.com的HTTP配置文件,也可以直接在里面加一行ServerAlias bbbbb.com,再加上跳转规则,不用新建文件也行。

内容的提问来源于stack exchange,提问作者drexsien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:57:56