IIS 10重定向问题:仅配置HTTP端口的站点自动跳转HTTPS localhost
IIS HTTP站点自动跳转HTTPS localhost 排查与解决指南
原因排查
- 检查URL重写规则:打开IIS对应站点的功能视图,找到「URL重写」模块,查看是否存在强制HTTPS跳转的预设规则,若存在可先禁用规则后测试访问是否仍跳转,你提供的配置截图可辅助核对该配置项
- 核对站点绑定配置:检查站点绑定列表,确认未额外添加HTTPS 443端口的绑定,无证书的异常HTTPS绑定也可能触发跳转逻辑
- 检查站点根目录
web.config配置:查找文件中是否存在<httpRedirect>跳转配置,或<rewrite>节点下的HTTPS强制跳转规则,常见异常配置示例如下:
<rule name="Force HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule>
如有上述配置可先注释,重启站点后测试访问效果
- 排查HSTS配置与缓存:IIS 10及以上版本默认支持HSTS功能,若站点开启了HSTS,或localhost被浏览器加入HSTS缓存,也会触发强制HTTPS跳转。Chrome内核浏览器可访问
chrome://net-internals/#hsts查询localhost是否在HSTS缓存列表,存在的话删除缓存后重试 - 检查站点代码逻辑:确认站点代码中没有写入强制HTTPS跳转的逻辑,比如ASP.NET项目的
app.UseHttpsRedirection()中间件配置
解决方法
- 若无需HTTPS访问,删除URL重写模块中的强制HTTPS规则,移除
web.config中对应的跳转配置,关闭站点的HSTS功能 - 若为浏览器HSTS缓存导致的跳转,仅清除对应浏览器的HSTS缓存即可,无需修改IIS配置
- 所有配置修改完成后,需重启IIS站点,同时清空浏览器缓存后再测试,避免301永久重定向本地缓存干扰测试结果
内容的提问来源于stack exchange,提问作者user520244
相关产品推荐
相关产品推荐

