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

Ubuntu系统下Apache2配置重定向时出现循环该如何解决?

配置错误原因

  • 缺少www.example.com对应的443端口虚拟主机配置,所有443端口的请求(包括访问www.example.com的请求都会匹配到现有ServerName example.com的443虚拟主机,触发重定向规则,形成循环
  • 存在重复的ServerName example.com的443虚拟主机配置,属于冗余无效配置,会导致匹配优先级混乱

修复方案

第一步:替换/etc/apache2/sites-enabled/000-default.conf全部内容为以下配置,删除原有重复、冗余的虚拟主机块:

# 处理80端口所有HTTP请求,统一重定向到HTTPS带www地址
<VirtualHost *:80>
      ServerName example.com
      ServerAlias www.example.com
      Redirect permanent / https://www.example.com/
</VirtualHost>

# 处理443端口非www的HTTPS请求,重定向到带www地址
<VirtualHost *:443>
      ServerName example.com
      Redirect permanent / https://www.example.com/
      SSLEngine on
      SSLCertificateFile /etc/ssl/example_com.crt
      SSLCertificateKeyFile /etc/ssl/example_com.key
      SSLCertificateChainFile /etc/ssl/example_com.ca-bundle
</VirtualHost>

# 处理443端口带www的请求,正常响应站点内容
<VirtualHost *:443>
      ServerName www.example.com
      DocumentRoot /var/www/html
      SSLEngine on
      SSLCertificateFile /etc/ssl/example_com.crt
      SSLCertificateKeyFile /etc/ssl/example_com.key
      SSLCertificateChainFile /etc/ssl/example_com.ca-bundle
</VirtualHost>

第二步:验证配置并重启服务

  • 执行以下命令验证配置语法正确性:
    apache2ctl configtest
  • 返回Syntax OK后,执行重启命令生效配置:
    systemctl restart apache2

注意事项

确认你使用的SSL证书同时覆盖example.com和www.example.com两个域名,否则访问带www的地址会触发证书不安全报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:18:00