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

Nginx URL重写正则问题:移除/proxy及直接子路由路径

Nginx URL重写正则修正方案

你的问题出在原正则只移除了/proxy前缀,没有去掉紧随其后的直接子路径段。要实现需求,需要精准匹配/proxy/后的第一个路径段并将其移除,正确的正则配置如下:

正确的Rewrite规则

rewrite ^/proxy/[^/]+(/.*)?$ $1 last;

规则解释

  • ^/proxy/:匹配URL开头的/proxy/固定前缀
  • [^/]+:匹配/proxy/后的第一个路径段(支持包含连字符等特殊字符,[^/]表示匹配除斜杠外的任意字符)
  • (/.*)?:可选匹配后续的路径部分(如果有的话),括号将这部分捕获为分组$1
  • $1:将URL替换为捕获到的后续路径部分,Nginx会自动保留原URL的查询参数

验证示例

  • /proxy/vms/some/cool/route → 替换后为 /some/cool/route
  • /proxy/oms/another/route → 替换后为 /another/route
  • /proxy/ims/another/route?query → 替换后为 /another/route?query
  • /proxy/some-word-with-character/fourth/route → 替换后为 /fourth/route

原规则问题分析

你之前使用的'^/proxy(/.*)$': '$1'会把/proxy/vms/some/cool/route中的/vms/some/cool/route捕获为$1,只移除了/proxy而保留了直接子路径vms,不符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:55:21