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

IIS配置HTTPS重定向触发ERR_TOO_MANY_REDIRECTS问题排查

问题成因

当使用ARR代理时,SSL卸载操作是在ARR层面完成的,后端IIS服务器接收到的所有实际请求都是HTTP协议,因此{HTTPS}服务器变量始终返回OFF。你的重定向规则依赖{HTTPS}判断是否触发重定向,导致即使用户已访问HTTPS,后端仍会不断发起重定向,最终形成无限循环。

修正方案

修改web.config中的重定向规则,改用ARR传递的X-Forwarded-Proto请求头判断原始请求的协议:

<rule name="http to https" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="^(www.)?example\.com$" />
        <add input="{HTTP_X_FORWARDED_PROTO}" pattern="^https$" negate="true" />
    </conditions>
    <action type="Redirect" url="https://example.com/{R:1}" redirectType="Permanent" />
</rule>

关键修改说明

  • 替换判断变量:用{HTTP_X_FORWARDED_PROTO}替代{HTTPS},ARR会将用户原始请求的协议(http/https)通过该请求头传递给后端IIS。
  • 反向条件判断:添加negate="true",表示当原始请求协议不是HTTPS时,才触发重定向逻辑。
  • 优化重定向类型:建议将redirectType改为Permanent(301状态码),既利于搜索引擎收录,也能让浏览器缓存重定向规则,减少后续请求开销。

额外验证步骤

  • 确认ARR代理配置:在ARR服务器的IIS管理器中,进入服务器节点的Application Request Routing Cache → Server Proxy Settings,勾选"Enable proxy"和"Preserve client IP in the X-Forwarded-For header",确保X-Forwarded-Proto等请求头被正确转发至后端。
  • 测试重定向逻辑:使用浏览器开发者工具的Network面板,查看请求链路,确认HTTP请求会被重定向到HTTPS,而HTTPS请求能正常返回页面内容,无循环重定向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:22:03