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

Apache URL重写规则异常:访问指定URL陷入无限循环求助

嘿,我来帮你揪出这个无限循环的问题!你遇到的URL不断重复pagename的情况,肯定是重写规则的配置出了疏漏,导致Apache一直在重复执行重写操作,停不下来。

先给你正确的配置方案

要实现「访问/pagename时显示/index.php内容,URL保持不变」的需求,正确的Apache重写规则应该是这样的:

RewriteEngine On
# 精确匹配/pagename路径,内部转发到/index.php
RewriteRule ^pagename$ /index.php [L]

你的配置可能犯了这些错

咱们来逐个排查常见的坑:

  • 没加路径锚定符^和$:如果你的规则写成了RewriteRule pagename index.php(没有开头和结尾的锚定),那任何包含pagename字符串的路径都会被匹配——比如重写后的请求如果间接带了pagename,就会被反复重写,导致路径不断追加。
  • 用了相对路径而非绝对路径:如果写成RewriteRule ^pagename$ index.php,又没设置RewriteBase /,Apache会把重写后的路径和原路径拼接成/pagename/index.php,要是这个新路径又被宽泛的规则匹配,就会陷入循环。
  • 错误加了重定向标志[R]:[R]会让浏览器跳转到新URL,而不是内部转发内容。如果规则不小心重定向到了带pagename的路径,浏览器就会不断跳转,URL里的pagename也就越堆越多。
  • 漏了[L]标志:[L]是告诉Apache「这条规则处理完就停,别管后面的了」,没加的话可能会触发其他规则,引发意外的循环。

另外,要是你在.htaccess里配置,得确保所在目录的AllowOverride设置成All或者包含FileInfo,不然重写规则根本不会生效。测试前记得清一下浏览器缓存,避免之前的错误重定向缓存干扰结果哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:40:15