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提供了原生的重定向配置,更适合无代码修改的场景:
- 登录Azure门户,进入你的App Service实例
- 左侧导航栏选择配置 → 重定向
- 配置参数:
- 重定向类型:选择永久(301)(推荐)或临时(302)
- 目标URL:填写
https://www.example.com - 保留路径:勾选(确保原请求的路径被带到目标域名)
- 保留查询字符串:勾选(保留原请求的查询参数)
- 重定向条件:选择所有请求,或者添加排除规则:排除主机名为
www.example.com的请求
- 点击保存,配置会自动生效
最优方案建议
- 如果你的应用是基于ASP.NET/.NET技术栈,直接修改web.config规则更直接,配置和应用代码绑定,便于部署同步
- 如果是多语言应用(比如Node.js、Python等),或者希望在平台层面统一管理重定向,优先使用Azure App Service的原生重定向配置,无需修改应用代码,后续新增域名也无需调整规则
内容的提问来源于stack exchange,提问作者David Mason
相关产品推荐
相关产品推荐

