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

使用Rewrite规则重定向后出现站点xxx重定向次数过多问题求助

重定向循环问题排查与解决

问题原因

你的规则触发了循环重定向,核心原因是:服务器大概率存在内部重写逻辑,会把/news/xxx/这类路径转回带category参数的/news/?category=xxx&key=news-category。此时内部重写后的请求会再次匹配你的RewriteCond条件,触发重定向跳回/news/xxx/,往复形成循环。

另外,原规则仅检查查询参数,没有区分外部实际请求和内部重写后的请求,导致内部请求也被错误触发重定向。

解决方案

修改重写规则,通过%{THE_REQUEST}变量匹配原始请求行,确保只对外部发来的带参数请求生效,避免内部重写触发循环:

RewriteCond %{THE_REQUEST} ^GET\ /news/\?category=([^&]+)&key=news-category\ HTTP/
RewriteRule ^news/$ /news/%1/? [R=301,L]

规则说明

  • %{THE_REQUEST}记录客户端发送的原始请求行,不会被内部重写规则修改,能精准匹配外部用户的带参数请求。
  • 末尾的?用于清除重定向后的查询字符串,避免参数残留。
  • R=301表示永久重定向,L表示终止后续规则处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:23:28