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

Apache mod_rewrite规则引发无限循环的问题及修复咨询

修复Apache重定向无限循环问题

你的规则引发无限循环的核心原因是:重定向时没有明确丢弃原查询字符串,Apache默认会把原请求的查询字符串附加到重定向目标URL后,导致重定向后的URL依然带有test=参数,触发规则反复执行。

解决方案1:兼容所有Apache版本

修改RewriteRule的目标URL,在末尾添加?,明确告诉Apache不要传递原查询字符串:

RewriteCond %{QUERY_STRING} ^test=([A-Za-z0-9]+)$
RewriteRule ^event/just-an-event-600922$ https://www.ourdomain.com/event/just-an-event-600922? [L,R=301]

解决方案2:Apache 2.4+推荐写法

如果你的服务器运行Apache 2.4或更高版本,使用QSD(Query String Discard)标志,语义更清晰:

RewriteCond %{QUERY_STRING} ^test=([A-Za-z0-9]+)$
RewriteRule ^event/just-an-event-600922$ https://www.ourdomain.com/event/just-an-event-600922 [L,R=301,QSD]

补充说明

  • [L]标志确保当前规则是最后执行的规则,避免后续规则干扰
  • R=301是永久重定向,适合SEO场景;测试阶段可以先用R=302临时重定向,确认正常后再切换为301

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:52:35