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

Nginx URL重写:匹配含特殊字符路径节点的正则写法求助

Nginx URL重写:匹配含特殊字符路径节点的正则写法求助

嘿,我来帮你搞定这个Nginx重写的问题!你遇到的核心问题是正则表达式里特殊字符的解析逻辑——+在正则里是个量词,代表前面的字符可以出现1次或多次,所以你之前写的^/foo+(/.*)$其实匹配的是/fo、/foo、/fooo这类路径,而不是你想要的字面量/foo+。

给你两个可行的解决方案:

  • 方案一:转义特殊字符
    把+用反斜杠\转义,让正则引擎把它当作普通字符处理,对应的rewrite指令如下:

    rewrite ^/foo\+(/.*)$ $1 break;
    

    这样就能精准匹配以/foo+开头的路径,捕获后面的/bar/file/test.txt部分,重写后就得到你想要的目标URL了。

  • 方案二:使用字符集包裹特殊字符
    正则里的字符集[]内部的特殊字符会被当作字面量解析,所以也可以这样写:

    rewrite ^/foo[+](/.*)$ $1 break;
    

    这个写法和方案一效果完全一致,看你个人习惯选择就行。

你可以把上面任意一种写法放到你的Nginx配置里测试,应该就能解决你的问题啦!

备注:内容来源于stack exchange,提问作者Pahan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 09:42:58