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

Azure WebApp站点合并时IIS重定向的web.config配置咨询

解决方案:调整web.config重写规则以适配多域名页面级重定向

问题根源分析

  • 现有Redirect site2 root to site1规则直接将所有site2请求跳转到site1根目录,未保留原请求路径,导致重定向模块无法识别site2blog/这类路径做映射。
  • 规则顺序不合理,且未给第三方重定向模块留出处理页面级重定向的空间,导致site1的oldurl无法触发配置的重定向,返回404。

修改后的web.config规则配置

<!-- 1. 优先处理site1的非www转www,保留原路径 -->
<rule name="Redirects to non-www to www - site1" enabled="true" patternSyntax="ECMAScript" stopProcessing="false">
    <match url=".*" />
    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^site1\.com$" />
    </conditions>
    <action type="Redirect" url="https://www.site1.com/{R:0}" redirectType="Permanent" />
</rule>

<!-- 2. 处理site2的域名跳转,保留原请求路径,让重定向模块处理路径映射 -->
<rule name="Redirect site2 to site1 with path" stopProcessing="false">
    <match url=".*" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="^(www\.)?site2\.com$" />
    </conditions>
    <!-- 保留原请求路径{R:0},重定向模块会在此基础上处理页面级映射(如site2blog/ → blog) -->
    <action type="Redirect" url="https://www.site1.com/{R:0}" redirectType="Permanent" />
</rule>

关键修改说明

  • 规则顺序调整:先完成site1的域名标准化(非www转www),再处理site2的域名跳转,确保所有请求先统一到标准域名格式,再进入重定向模块的页面级处理流程。
  • site2规则优化:将固定跳转根目录改为保留原路径{R:0},这样www.site2.com/site2blog/会先跳转到www.site1.com/site2blog/,之后第三方重定向模块就能识别该路径并完成到www.site1.com/blog的页面级重定向。
  • stopProcessing设置:保持stopProcessing="false",让请求能继续流转到第三方重定向模块,处理site1内部的oldurl→newurl这类页面级重定向。

额外注意事项

  • 确保第三方重定向模块已正确配置所有页面级重定向规则(包括site2路径到site1路径的映射、site1内部的旧路径映射)。
  • 在Azure WebApp中,可通过应用服务→配置→路径映射确认多域名绑定已正确生效,避免DNS或域名绑定问题导致规则不触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 03:22:22