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

IE11下HTTP转HTTPS重定向URL路径异常问题求助

IE11下IIS HTTPS重定向URL路径错误的问题排查与修复

问题描述

我已经为网站www.jkp-ads.com启用了HTTPS,部署在IIS服务器上(版本未知)。大部分功能正常,但在IE11中输入网址www.jkp-ads.com/reftreeanalyser.asp时,会被错误重定向到https://www.jkp-ads.comreftreeanalyser.asp/(注意.com后的斜杠消失,反而移到了URL末尾),最终导致「无法访问此页面」的错误。当前的web.config重定向配置如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

问题原因

这个问题的核心在于IE11对IIS URL重写模块的URL拼接逻辑存在兼容性bug:

  • 当前规则用{HTTP_HOST}/{R:1}手动拼接HTTPS地址,其中{R:1}是捕获的URL路径部分(即reftreeanalyser.asp)。
  • 现代浏览器能正常解析这种拼接,但IE11的URL解析逻辑特殊,会错误省略{HTTP_HOST}和{R:1}之间的斜杠,导致路径直接粘在域名末尾,形成无效URL。
  • 虽然访问根域名时{R:1}为空,拼接结果https://www.jkp-ads.com/是正常的,但带路径的请求刚好触发了IE11的这个解析漏洞。

修复方案

最稳妥的解决方式是放弃手动拼接路径,直接使用{REQUEST_URI}变量——它包含了完整的请求路径(自带开头的斜杠),能彻底避免拼接错误。修改后的web.config规则如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" ignoreCase="true" />
</conditions>
<!-- 用{REQUEST_URI}替代手动拼接的/{R:1},确保路径完整性 -->
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

额外验证建议

如果修改后仍有异常,可以尝试:

  • 若能确认服务器版本,升级IIS URL重写模块到最新版,旧版本可能存在更多IE兼容性问题。
  • 无需额外添加路径判断条件,因为{REQUEST_URI}在访问根域名时会自动返回/,不会出现拼接错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:36:21