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

Azure SWA如何实现请求路由重定向修改与路径重写需求

你提到的两个需求都可以通过Azure Static Web Apps的核心配置文件staticwebapp.config.json实现,以下是具体配置方法和示例:


配置逻辑说明

你只需要将staticwebapp.config.json文件放在项目静态资源根目录(和站点入口index.html同级),部署后规则会自动生效,两个需求的对应配置如下:

  • 登录跳转需求:通过捕获未认证访问的401状态,自定义重定向的登录地址,将用户原始请求路径作为参数传递给认证端点,Azure SWA原生支持该跳转参数,登录完成后会自动跳回用户原本请求的页面
  • 美观URL重写需求:通过路由重写规则,匹配无后缀的美观路径,将请求映射到对应目录下的index.html文件,地址栏URL不会发生变化,符合使用预期

完整配置示例

{
  "routes": [
    // 登录跳转规则:所有路径默认需要认证,未认证时跳转到指定登录页并携带原始请求路径
    {
      "route": "/*",
      "allowedRoles": ["authenticated"],
      "responseOverrides": {
        "401": {
          "redirect": "/.auth/login/<my-auth-provider>?post_login_redirect_uri={{request.fullPath}}",
          "statusCode": 302
        }
      }
    },
    // 美观URL重写规则:匹配无后缀的路径,重写到对应目录的index.html
    {
      "route": "/:prettyPath",
      "rewrite": "/:prettyPath/index.html",
      "statusCode": 200
    }
  ],
  // 可选兜底配置:避免规则未覆盖的异常路径返回404,可根据实际需求调整排除路径
  "navigationFallback": {
    "rewrite": "/index.html",
    "exclude": ["/assets/*", "*.css", "*.js", "*.png"]
  }
}

注意事项

  • 把配置里的<my-auth-provider>替换为你实际使用的身份提供商标识,比如aad、github等
  • 如果部分路径不需要认证,可在上述受保护路由规则前新增优先级更高的匿名访问路由规则,匹配对应路径后设置"allowedRoles": ["anonymous"]即可
  • 多层级的美观URL可以调整重写规则的匹配逻辑,比如"/:level1/:level2"对应重写为"/:level1/:level2/index.html"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:36:02