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

htaccess配置int:tolower规则后多次重定向并跳转至根目录问题

问题根因

该问题是.htaccess上下文下的mod_rewrite路径解析规则差异导致的:

  • .htaccess默认将重写目标识别为相对当前目录的路径,你直接使用${lc:%{REQUEST_URI}}作为目标时没有声明为绝对路径,会触发路径拼接错误,最终跳转到根目录
  • 部分Apache版本在.htaccess中直接调用%{REQUEST_URI}作为重定向目标时,会丢失路径信息,触发循环重定向
  • 你之前的主机可以正常运行,是因为不同Apache版本、不同全局rewrite配置对.htaccess下的路径解析逻辑存在差异

解决方法

将你.htaccess中的重写规则替换为以下内容即可:

RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule ^(.*)$ /${lc:$1} [R=301,L,QSA,NE]

规则说明

  • 直接通过RewriteRule捕获当前请求的路径$1,适配.htaccess的上下文解析逻辑,避免路径丢失
  • 目标前加/明确指定为站点根路径下的绝对路径,避免相对路径拼接错误
  • QSA标志保留原有请求的查询参数
  • NE标志避免URL中的特殊字符被意外转义

测试注意事项

修改完成后务必先清空浏览器缓存再测试,301重定向为永久缓存,旧的错误规则会被浏览器长期缓存,会影响测试结果判断。

如果修改后仍然无法正常工作,可以检查Apache的错误日志,确认Virtualhost中定义的lc RewriteMap是否正常加载,无权限或配置语法错误会导致map调用失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:27:03