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

Azure App Service多域名统一重定向至www.example.com方案咨询

解决Azure App Service多域名统一重定向到www.example.com的问题

问题根源分析

你当前的web.config重写规则应该是使用了{HTTP_HOST}变量直接拼接成www.{HTTP_HOST},导致非example.com的域名会跳转到各自的www子域(比如example.net→www.example.net),这是因为规则没有强制指定目标域名,而是动态沿用了请求的原域名。

正确的web.config重写规则

替换现有规则为以下配置,强制将所有非www.example.com的请求重定向到目标域名,同时保留原路径和查询参数:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Redirect to www.example.com" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^www\.example\.com$" negate="true" />
          </conditions>
          <action type="Redirect" url="https://www.example.com/{R:1}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
  • negate="true"表示匹配所有不是www.example.com的请求
  • {R:1}保留原请求的路径部分
  • redirectType="Permanent"设置301永久重定向,利于SEO

Azure App Service自带配置方案(无需修改web.config)

Azure App Service提供了原生的重定向配置,更适合无代码修改的场景:

  1. 登录Azure门户,进入你的App Service实例
  2. 左侧导航栏选择配置 → 重定向
  3. 配置参数:
    • 重定向类型:选择永久(301)(推荐)或临时(302)
    • 目标URL:填写https://www.example.com
    • 保留路径:勾选(确保原请求的路径被带到目标域名)
    • 保留查询字符串:勾选(保留原请求的查询参数)
    • 重定向条件:选择所有请求,或者添加排除规则:排除主机名为www.example.com的请求
  4. 点击保存,配置会自动生效

最优方案建议

  • 如果你的应用是基于ASP.NET/.NET技术栈,直接修改web.config规则更直接,配置和应用代码绑定,便于部署同步
  • 如果是多语言应用(比如Node.js、Python等),或者希望在平台层面统一管理重定向,优先使用Azure App Service的原生重定向配置,无需修改应用代码,后续新增域名也无需调整规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:05:00