Azure API 管理 "rewrite url" - 如何删除 URL 前缀
Azure API Management "rewrite url" - how to remove the URL prefix
我有大量publicURL以/abc/*
开头的,例如:
/abc/user
/abc/login
/abc/group/admin
如何重写 URL 规则来摆脱 /abc/*
这样的:
/user
/login
/group/admin
我尝试将 URL 模板设置为 /abc/*
,重写模板为 /
。貌似url模板可以搞定上面的url,但是rewrite模板写不出我想要的结果。
我测试了你的场景 - 这给你 /xxxx
作为 /abc/xxxx
:
的转发路径
<rewrite-uri template="@(context.Request.OriginalUrl.Path.Replace(context.Api.Path+"/abc",""))" copy-unmatched-params="true" />
或者更通用:
<rewrite-uri template="@(context.Request.OriginalUrl.Path.Replace(context.Api.Path+context.Operation.UrlTemplate.Replace("/*",""),""))" copy-unmatched-params="true" />
我有大量publicURL以/abc/*
开头的,例如:
/abc/user
/abc/login
/abc/group/admin
如何重写 URL 规则来摆脱 /abc/*
这样的:
/user
/login
/group/admin
我尝试将 URL 模板设置为 /abc/*
,重写模板为 /
。貌似url模板可以搞定上面的url,但是rewrite模板写不出我想要的结果。
我测试了你的场景 - 这给你 /xxxx
作为 /abc/xxxx
:
<rewrite-uri template="@(context.Request.OriginalUrl.Path.Replace(context.Api.Path+"/abc",""))" copy-unmatched-params="true" />
或者更通用:
<rewrite-uri template="@(context.Request.OriginalUrl.Path.Replace(context.Api.Path+context.Operation.UrlTemplate.Replace("/*",""),""))" copy-unmatched-params="true" />