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

Azure App Service虚拟目录URL重写至子域名的配置问题

解决Azure App Service中api.mydomain.com重定向到/api的循环问题

你的问题出在无限循环重定向上——当你访问api.mydomain.com时,规则会将其重定向到api.mydomain.com/api,但这个新请求的HTTP_HOST仍然是api.mydomain.com,且请求路径/api会被match url="(.*)"再次匹配,导致规则反复触发,最终App Service被大量循环请求占满,无法处理正常请求。

下面是两种针对不同需求的优化方案:

方案1:永久重定向(地址栏显示/api)

这个方案会让浏览器地址栏从api.mydomain.com变成api.mydomain.com/api,适合需要用户明确看到/api路径的场景。我们添加条件排除已经以/api/开头的请求,避免循环:

<rewrite>
  <rules>
    <rule name="Redirect to /api" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^api.mydomain.com$" />
        <!-- 排除已经是/api开头的请求,防止循环 -->
        <add input="{REQUEST_URI}" pattern="^/api/" negate="true" />
      </conditions>
      <action type="Redirect" url="https://api.mydomain.com/api/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>
  • stopProcessing="true":确保匹配到这条规则后不再执行后续规则,提升效率
  • negate="true":表示当请求路径不以/api/开头时才触发规则

如果你只需要将根路径(api.mydomain.com)重定向到/api,不需要处理其他子路径,可以简化规则:

<rewrite>
  <rules>
    <rule name="Redirect root to /api" stopProcessing="true">
      <match url="^$" /> <!-- 仅匹配空的根路径 -->
      <conditions>
        <add input="{HTTP_HOST}" pattern="^api.mydomain.com$" />
      </conditions>
      <action type="Redirect" url="https://api.mydomain.com/api" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

方案2:内部重写(地址栏不变)

如果不需要改变浏览器地址栏,只是希望后台将api.mydomain.com的请求映射到/api目录,可以使用Rewrite类型的规则(相当于内部转发,用户无感知):

<rewrite>
  <rules>
    <rule name="Rewrite to /api" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^api.mydomain.com$" />
        <add input="{REQUEST_URI}" pattern="^/api/" negate="true" />
      </conditions>
      <action type="Rewrite" url="/api/{R:1}" />
    </rule>
  </rules>
</rewrite>

部署注意事项

  1. 将修改后的web.config放在wwwroot目录下,App Service会自动检测配置变化并重启应用
  2. 测试时可以使用浏览器的开发者工具(Network面板)查看重定向是否正常,避免循环
  3. 确保你的虚拟目录配置wwwroot/api映射正常,避免重写/重定向后出现404错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:11:20