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

WordPress htaccess配置https跳转及rvplayer排除出现重定向循环求助

WordPress .htaccess重定向循环问题解决方案

问题根源

  • 原有配置仅通过SERVER_PORT判断访问协议,若站点使用CDN、反向代理(如Nginx前置、Cloudflare),Apache侧拿到的访问端口始终为80,会反复触发https跳转规则形成循环
  • 未对www/非www域名做统一规范,多域名形态交叉匹配规则触发循环
  • 未兼容反向代理场景下的协议判断参数X-Forwarded-Proto

修正后的完整配置

RewriteEngine On

# 可选:强制www前缀跳转为非www,若需保留www可替换为下方注释内的规则
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

# 若需保留www前缀,使用下方规则替换上述www跳转规则
# RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]

# 非rvplayer路径的HTTP请求统一跳转HTTPS
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteCond %{THE_REQUEST} !/rvplayer/ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# rvplayer路径的HTTPS请求统一跳转HTTP
RewriteCond %{HTTPS} on [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} =https [NC]
RewriteCond %{THE_REQUEST} /rvplayer/ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# WordPress默认重定向规则
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

生效注意事项

  • 修改配置后需清空浏览器缓存、站点CDN缓存,301重定向会被浏览器长期缓存,未清缓存可能仍显示旧的循环结果
  • 确认WordPress后台「设置」-「常规」内的站点地址(URL)和WordPress地址(URL)与你要使用的主域名(带/不带www、对应协议)完全一致,避免WP自带的重定向规则和.htaccess规则冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:45:00