Ubuntu下Apache虚拟主机配置异常:clients.site2.com加载错误内容
问题根源与解决方案
从你提供的apache2ctl -S输出可以明确看出问题所在:你的clients.site2.com没有对应的HTTPS虚拟主机配置。
具体分析:
- 当你访问
http://clients.site2.com时,80端口的vhost配置会正确触发Rewrite规则,跳转到https://clients.site2.com; - 但查看443端口的vhost列表,完全找不到
clients.site2.com的条目——Apache在找不到匹配的HTTPS vhost时,会自动使用第一个加载的默认HTTPS站点(也就是clients.site1.com),这就是为什么浏览器地址显示clients.site2.com,但实际加载的是clients.site1.com的内容。 - 你之前修改文件名的尝试无效,是因为Apache是通过配置文件里的
ServerName/ServerAlias来匹配虚拟主机的,和配置文件的文件名无关。
解决步骤:
用Certbot生成HTTPS配置
运行以下命令,让Certbot自动为clients.site2.com生成SSL证书和对应的HTTPS虚拟主机配置:sudo certbot --apache -d clients.site2.com这个命令会自动识别你已有的80端口vhost配置,生成类似
clients.site2.com-le-ssl.conf的文件,并自动执行a2ensite启用它。验证配置
再次运行apache2ctl -S,检查443端口的vhost列表中是否出现clients.site2.com的条目,确认配置已正确加载。重启Apache服务
让新配置生效:sudo systemctl restart apache2
完成以上步骤后,访问clients.site2.com就会正确加载对应的站点内容了。
内容的提问来源于stack exchange,提问作者Pegues
相关产品推荐
相关产品推荐

