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

解决.htaccess目录重定向循环问题:将domain.com/xx定向至/xx/zzzzz

解决/xx重定向到/xx/zzzzz的循环问题

这个重定向循环问题很常见,根源在于你之前的redirect 301 /xx /xx/zzzzz用了前缀匹配——服务器会把所有以/xx开头的请求(包括/xx/zzzzz本身)都触发重定向,自然就陷入循环了。核心解决思路是:只精确匹配/xx(含带结尾斜杠的/xx/)这个根路径,不匹配它的子路径。

下面分两种主流Web服务器给出具体配置:

Apache 配置方案

使用mod_rewrite实现精确匹配,避免前缀匹配的问题:

RewriteEngine On
# 精确匹配/xx或/xx/,重定向到目标子目录
RewriteRule ^xx/?$ /xx/zzzzz [R=301,L]
  • ^xx/?$:正则表达式表示匹配以xx开头,后面可选一个斜杠,然后直接结束的路径——也就是只匹配/xx和/xx/
  • [R=301,L]:R=301表示永久重定向,L表示这是最后一条规则,避免后续规则干扰

Nginx 配置方案

用精确匹配的location指令,或者正则匹配来实现:

方式1:精确匹配单个路径

server {
    # 你的其他服务器配置(监听端口、域名等)...
    
    # 匹配不带斜杠的/xx
    location = /xx {
        return 301 /xx/zzzzz;
    }
    # 匹配带斜杠的/xx/
    location = /xx/ {
        return 301 /xx/zzzzz;
    }
}

方式2:正则合并匹配

server {
    # 你的其他服务器配置...
    
    # 同时匹配/xx和/xx/
    location ~ ^/xx/?$ {
        return 301 /xx/zzzzz;
    }
}
  • =符号表示精确匹配,只有当请求路径完全等于指定值时才触发规则,不会匹配子路径
  • 正则^/xx/?$同样只匹配/xx和/xx/这两个路径

这样配置后,用户访问domain.com/xx或domain.com/xx/会被正确重定向到/xx/zzzzz,而访问/xx下的其他子目录(比如/xx/aaa)不会受到任何影响,也不会出现重定向循环。

内容的提问来源于stack exchange,提问作者Bento de Espinosa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:24:04