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

Azure Functions路由绑定如何匹配含斜杠的未知URL后缀

问题根因

Azure Functions HTTP触发器路由底层复用ASP.NET Core路由规则,普通路由参数(比如你现在写的{restOfUrl})默认只匹配单段无斜杠的路径片段,只要剩余路径里带额外正斜杠,就会匹配失败返回404。

修复方案

用catch-all通配路由参数捕获包含斜杠的多段路径,只要给最后一个路由参数名前面加*前缀即可,修改后的路由配置项为:

"route": "{param1}/customer/{param2}/{*restOfUrl}"

修改完成后的完整function.json配置如下:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",      
      "route": "{param1}/customer/{param2}/{*restOfUrl}",
      "name": "req",
      "methods": [
        "get"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    }
  ],
  "scriptFile": "../dist/src/handlers/myScript.js"
}
使用说明
  • 带*前缀的通配参数必须放在路由模板的最末尾,放在中间位置会导致路由规则解析报错
  • 该参数会捕获从对应位置开始到URL末尾的所有内容,包含任意数量的正斜杠,捕获到的是完整字符串,需要拆分多段的话可以在业务代码里自己按/分割
  • 即使URL在{param2}之后没有剩余内容,这个规则也能正常匹配,此时restOfUrl的取值为空字符串
匹配效果对照
实际请求路径restOfUrl参数取值匹配状态
...123/customer/456/rest-of-urlrest-of-url正常命中
...123/customer/456/rest/of/urlrest/of/url正常命中,无404
...123/customer/456/path/with/many/slashespath/with/many/slashes正常命中
...123/customer/456空字符串正常命中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:18:09