Azure静态Web应用如何通过通配符实现带路径参数的API重定向至Function App?
解决Azure Static Web App重定向中传递通配符路径的问题
你遇到的问题是因为Static Web App的路由配置里,直接使用*并不会自动把匹配到的路径片段传递到重定向目标里——得用路由参数占位符来实现这个动态路径传递的需求。
试试把你的staticwebapp.config.json改成下面这样:
{ "routes": [ { "route": "/api/client/{*rest}", "redirect": "https://xx.yy.net/api/client/{rest}" } ] }
这里的关键细节:
{*rest}是一个贪婪捕获的路由参数,它会把/api/client/之后的所有路径内容(包括嵌套的子路径,比如customer/get)全部捕获下来- 在
redirect字段里用{rest}引用这个捕获到的内容,就能自动把原请求的路径片段拼接到目标URL上 - 原请求的查询参数(比如
?customerId=xx)会被自动保留并传递到重定向后的URL,不需要额外配置
测试一下这个配置:当你请求/api/client/customer/get?customerId=xx时,会被精准重定向到https://xx.yy.net/api/client/customer/get?customerId=xx,完全符合你的预期。
另外提醒一句:如果你的配置里有多个路由规则,记得把这条规则放在相对靠前的位置——Static Web App的路由是按顺序匹配的,优先命中排在前面的规则。
内容的提问来源于stack exchange,提问作者Pulka
相关产品推荐
相关产品推荐

