如何配置Azure Function App实现静态URL重定向至原有地址
Azure Function App 自定义静态URL重定向实现方法
通过Function App内置的Proxies功能即可实现访问自定义静态URL自动跳转至原有登录/落地页的需求,具体操作步骤如下:
前置确认
- 提前准备好两个地址:
- 对外暴露的自定义静态访问路径(例如
https://<你的函数应用名>.azurewebsites.net/landing,如果绑定了自定义域名也可以用自有域名路径) - 原有登录/落地页的完整目标跳转地址(例如
https://<你的函数应用名>.azurewebsites.net/api/auth/login)
- 对外暴露的自定义静态访问路径(例如
- 确认函数应用运行版本:v1-v4版本均支持Proxies功能,若v4版本左侧菜单找不到Proxies入口,可直接通过编辑站点根目录的
proxies.json文件配置,后续会给出配置示例。
门户可视化配置步骤
- 进入Azure门户打开你的Function App资源,在左侧菜单栏「API」分类下找到Proxies板块点击进入。
- 点击页面顶部「+ 添加」按钮新建代理规则,按以下要求填写配置:
- 名称:填写便于识别的规则名称,例如
LandingPageRedirect,不要包含空格和特殊字符 - 路由模板:填写你要对外暴露的静态路径,例如要让用户访问
/landing触发跳转就填/landing;如果需要把根路径/直接作为静态入口,就填/ - 允许的HTTP方法:选择
GET, HEAD即可,重定向场景不需要其他请求方法 - 后端URL:由于我们会直接配置重定向响应,不会实际转发请求到后端,这里随便填一个合法URL即可,例如填函数应用自身的默认地址
- 名称:填写便于识别的规则名称,例如
- 点开「响应覆盖」配置块,填写重定向相关规则:
- 响应状态代码:填
302(临时重定向,测试功能正常后可改为301永久重定向,注意301会被浏览器强缓存,调整规则前务必清理浏览器缓存) - 响应头:新增一条头配置,键为
Location,值为你提前准备好的原有登录/落地页完整目标地址
- 响应状态代码:填
- 如果配置的是根路径
/的重定向,需要额外点开「匹配条件」板块,添加排除规则,避免把内置功能路径也拦截重定向:- 新增条件:请求路径,不匹配,模式填
/api/* - 新增条件:请求路径,不匹配,模式填
/admin/* - 新增条件:请求路径,不匹配,模式填
/hostruntime/* - 如果函数应用存了静态资源,再新增一条不匹配
/content/*的规则
- 新增条件:请求路径,不匹配,模式填
- 所有配置确认无误后,点击页面底部「创建」保存规则,等待10-20秒规则即可生效。
配置文件部署方式(找不到Proxies入口时用)
如果你的函数应用版本在门户看不到Proxies入口,可以直接在函数应用站点根目录(和host.json同层级)创建proxies.json文件,写入以下配置后上传,重启应用即可生效,配置示例:
{ "proxies": { "LandingPageRedirect": { "matchCondition": { "route": "/landing", "methods": [ "GET", "HEAD" ] }, "responseOverrides": { "response.statusCode": "302", "response.headers.Location": "https://<替换为你的函数应用名>.azurewebsites.net/api/<替换为原有登录页路径>" } } } }
如果要配置根路径重定向,在matchCondition下新增排除规则即可,格式参考门户配置的匹配条件写法。
验证方法
- 浏览器隐身模式下输入你配置的自定义静态URL,确认是否自动跳转到原有登录/落地页
- 如果跳转不生效,优先清理浏览器缓存(配置301重定向的场景尤其要注意),也可以用接口调试工具发GET请求,查看返回状态码是否为302/301,响应头Location值是否为目标地址
- 如果出现正常函数接口、静态资源被错误重定向的情况,回到规则里补充对应的路径排除条件即可。
提示:如果需要绑定自有域名作为静态URL入口,先到Function App的「自定义域名」板块完成域名解析绑定和SSL证书配置,再按照上述步骤配置重定向规则即可,路由模板不需要额外调整。
内容的提问来源于stack exchange,提问作者Ashish Shukla
相关产品推荐
相关产品推荐

