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

IIS URL Rewrite默认站点HTTPS根路径无法跳转至/app路径问题

问题根因

现有规则仅在请求为HTTP协议({HTTPS}值为OFF)时触发,用户直接访问HTTPS根路径时不满足规则触发条件,自然不会执行跳转。另外贴出的配置里HTTP跳转规则的enabled属性设为了false,规则本身处于关闭状态,实际运行时HTTP请求也不会被该规则处理。

修复方案

需要配置两条优先级明确的重写规则,先处理HTTP转HTTPS逻辑,再处理HTTPS协议下的路径跳转,同时添加排除条件避免重定向死循环,直接替换站点web.config中对应的<rewrite>节点即可:

<rewrite>
    <rules>
        <!-- 规则1:所有HTTP请求统一跳转至HTTPS的/app路径 -->
        <rule name="HTTP to HTTPS" enabled="true" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="^OFF$" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/app" redirectType="Temporary" />
        </rule>
        <!-- 规则2:HTTPS协议下非/app路径的请求统一跳转至/app -->
        <rule name="HTTPS Path to /app" enabled="true" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAll">
                <add input="{HTTPS}" pattern="^ON$" />
                <!-- 排除已处于/app路径下的请求,防止循环重定向 -->
                <add input="{REQUEST_URI}" pattern="^/app(/.*)?$" negate="true" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/app" redirectType="Temporary" />
        </rule>
    </rules>
</rewrite>
注意事项
  • 测试阶段建议用Temporary(307临时重定向),确认规则符合预期后再改成Permanent(301永久重定向),避免浏览器缓存错误跳转规则影响调试。
  • 规则必须按上述顺序排列,IIS会按照规则在配置中出现的先后顺序从上到下匹配,顺序错乱会导致逻辑异常。
  • 如果/app是站点下的独立应用,确认该应用下没有配置会覆盖根节点规则的重写配置,避免规则不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:21:13