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

如何在Nginx中交换$request的部分内容并实现重定向?

Nginx URL重定向问题解决方法

你的配置出现无限重定向的核心原因是用了$request变量——它会保留完整的原请求路径(比如/place/foo/bar/),重定向后生成的新路径依然以/place开头,会再次触发location /place规则,陷入循环。

正确的做法是用正则location捕获/place之后的路径片段,再拼接成目标URL:

location ~ ^/place(.*)$ {
    return 301 $1place;
}

配置说明:

  • ^/place(.*)$ 正则会匹配所有以/place开头的请求,把/place之后的所有内容捕获到变量$1中
  • 重定向时将$1与place拼接,比如原请求/place/foo/bar/会被转换为/foo/bar/place,新路径不再以/place开头,不会触发重复匹配

如果需要仅处理带斜杠的子路径(比如只匹配/place/xxx这类请求),可以调整正则为^/place/(.*)$,对应的重定向规则改为return 301 /$1place;,避免$1为空时出现以place开头的路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 13:57:28