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

WordPress站点仅Safari浏览器出现HTTPS重定向循环问题

问题原因
  • 你当前使用的.htaccess301跳转规则存在场景兼容缺陷:当站点部署在CDN、反向代理(绝大多数虚拟主机默认架构都是Nginx反代Apache、CDN节点回源走HTTP)后,Apache服务本身收到的回源请求始终是HTTP协议,%{HTTPS}变量会永久返回off值。
  • 仅Safari触发重定向循环是浏览器实现差异导致:
    • Chrome、Edge等Chromium内核浏览器会自动识别代理层注入的X-Forwarded-Proto协议标识,自动修正跳转逻辑,不会重复触发跳转;Safari的隐私防护机制默认会拦截非可信链路的转发头,导致Apache每次收到Safari的请求都判定为HTTP访问,返回301跳转到HTTPS地址,跳转后的请求到Apache层依然被识别为HTTP,形成死循环。
    • Safari对301永久重定向采用本地强缓存策略,不会每次请求都校验服务端最新规则,初期配置正常时缓存的正确跳转逻辑,和后续规则识别异常的响应冲突后,会持续触发循环,Chromium内核的301缓存会随请求动态校验,不会卡在这个异常状态。
  • 移除规则后恢复正常,是因为WordPress本身在后台将站点地址设置为HTTPS后,程序内置的跳转逻辑已经兼容代理场景的协议判断,不需要额外在服务端写跳转规则。
解决方案

按优先级选以下任意一种即可:

  • 最稳定方案:直接删除你在.htaccess中添加的这段HTTPS跳转规则,登录WordPress后台,在「设置-常规」页确认「WordPress地址(URL)」「站点地址(URL)」均为https://开头的全路径,开启强制HTTPS即可。如果担心后台配置遗漏,安装SSL插件自动处理全站点HTTPS兼容,不需要手动写服务端规则。
  • 保留.htaccess规则的修正方案:将原有跳转规则替换为兼容反向代理/CDN的版本,替换代码如下:
<IfModule mod_rewrite.c>
RewriteEngine on
# 优先识别代理层转发的HTTPS协议标识
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

替换完成后必须清理Safari本地缓存:打开Safari设置-隐私-管理网站数据,搜索对应站点域名,删除所有关联缓存数据后再测试访问,否则旧的301缓存会导致问题复现。

  • CDN配置排查项:如果站点开启了第三方CDN服务,需要在CDN控制台将SSL加密模式设置为「完全(严格)」,不要使用「灵活」模式,灵活模式下CDN回源走HTTP,是触发这类跨浏览器跳转异常的常见诱因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:21:26