Azure APIM无API后缀访问时重定向到登录页面的实现咨询
实现步骤
1. 进入APIM全局策略编辑页
- 登录Azure门户,进入你的
https://my-apim.azure-api.net对应APIM实例 - 左侧菜单找到API选项,点击顶部的所有API
- 点击界面右上角的
</>(代码视图)按钮,进入全局策略编辑界面,该层级配置的策略会对所有部署在当前APIM下的API生效
2. 添加入站重定向策略
在<inbound>节点下插入如下策略代码:
<inbound> <base /> <choose> <!-- 匹配GET请求且路径为根路径/ 或者未匹配到任何已配置的API后缀的场景 --> <when condition="@(context.Request.Method == "GET" && (context.Request.Url.Path == "/" || !context.Api.IsCurrentApiExplicitlyMatched))"> <redirect-url kind="temporary" destination="https://www.mywebsite.com/login" /> </when> </choose> </inbound>
策略参数说明
context.Request.Method == "GET":仅匹配GET请求,不对POST/PUT等其他业务请求生效context.Request.Url.Path == "/":仅匹配直接访问APIM根域名的请求,如果你需要拦截所有未配置的后缀路径,可以保留后面的!context.Api.IsCurrentApiExplicitlyMatched条件kind="temporary":返回302临时重定向,若需要永久重定向可改为permanent返回301状态码,建议测试阶段用临时重定向避免浏览器缓存导致的策略更新不生效问题
3. 保存并测试
- 保存策略配置后,等待1-2分钟让配置生效
- 直接在浏览器访问
https://my-apim.azure-api.net,验证是否会自动跳转到指定的登录页面 - 测试已配置的API后缀路径,确认不会被重定向、业务正常运行
内容的提问来源于stack exchange,提问作者Ricardo Rosa
相关产品推荐
相关产品推荐

