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

如何在Azure APIM中构建指定URL重写策略?

Azure APIM URL重写策略配置(按国家标识构造后端URL)

要实现你需要的URL重写逻辑,可使用APIM的<rewrite-url>策略,结合正则表达式提取URL中的国家标识,再构造目标后端URL。以下是具体配置方案:

核心策略代码

将以下策略添加到API的**入站(Inbound)**策略集合中:

变量拆分写法(可读性更强)

<rewrite-url template="https://{country}.com/{remainingPath}" copy-unmatched-params="false">
  <set-variable name="country" value="@(context.Request.Url.Path.Match("^/locations/([^/]+)/.*", 1))" />
  <set-variable name="remainingPath" value="@(context.Request.Url.Path.Match("^/locations/[^/]+/(.*)", 1))" />
</rewrite-url>

简洁正则替换写法

<rewrite-url value="@(Regex.Replace(context.Request.Url.Path, @"^/locations/([^/]+)/(.*)", @"https://$1.com/$2"))" copy-unmatched-params="false" />

逻辑说明

  1. 正则匹配规则:
    • ^/locations/([^/]+)/(.*):匹配以/locations/开头的路径,其中:
      • ([^/]+):捕获第一个/和下一个/之间的内容(即usa、canada这类国家标识)
      • (.*):捕获国家标识之后的所有剩余路径内容(如remaining-url)
  2. URL替换逻辑:
    • 用$1引用捕获的国家标识,$2引用剩余路径,拼接成https://$1.com/$2格式的后端URL
  3. 参数处理:copy-unmatched-params="false"表示不自动携带前端查询参数到后端,若需保留可改为true

验证示例

  • 请求URL:https://myfrontend.com/locations/usa/remaining-url → 重写后后端URL:https://usa.com/remaining-url
  • 请求URL:https://myfrontend.com/locations/canada/remaining-url → 重写后后端URL:https://canada.com/remaining-url

注意事项

  • 若国家标识存在大小写差异(如USA或Usa),可在正则中添加忽略大小写标志:@"^/locations/([^/]+)/(.*)", RegexOptions.IgnoreCase
  • 建议将API的后端基础URL留空或设为占位符,避免与重写策略冲突,确保完全由策略控制目标地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:15:31