IIS本地站点重定向异常:HTTP转HTTPS及端口丢失的解决
问题解决:IIS重定向时HTTP转HTTPS且丢失端口的修复方案
核心问题分析
你遇到的问题主要来自两个关键点:
- 301永久重定向的浏览器缓存:配置中使用
redirectType="Permanent"会让浏览器长期缓存重定向规则,哪怕你修改了配置,旧缓存依然会生效。 - 冗余规则干扰+目标站点强制HTTPS设置:当前规则里的
<conditions>块完全多余,若testsite2自身配置了强制HTTPS的重定向,会覆盖从testsite1发起的HTTP跳转请求。
修复步骤
1. 排除浏览器缓存影响
直接按Ctrl+Shift+Delete清除浏览器的“缓存的图片和文件”“Cookie和网站数据”,或者用隐私/无痕窗口访问http://www.testsite1.com:5005,避免旧缓存干扰测试。
2. 简化并修正testsite1的web.config配置
删除冗余条件,明确指定重定向的协议和端口,修改后的配置如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect to testsite2" stopProcessing="true"> <match url=".*" ignoreCase="true" /> <action type="Redirect" url="http://www.testsite2.com:5006/{R:0}" appendQueryString="true" redirectType="Temporary" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
- 改动说明:
- 移除无用的
<conditions>块,避免规则逻辑混乱 - 将
redirectType改为Temporary(302临时重定向),防止浏览器长期缓存错误规则,确认生效后可改回Permanent(301) - 添加
/{R:0}可完整传递原请求的路径和参数(比如原请求http://www.testsite1.com:5005/page1?a=1会跳转到http://www.testsite2.com:5006/page1?a=1)
- 移除无用的
3. 检查testsite2的站点配置
确保testsite2没有强制HTTPS的设置:
- 打开IIS管理器,进入testsite2的「URL重写」模块,若存在HTTP转HTTPS的规则,暂时禁用或删除
- 检查站点绑定,确认只绑定了
http://www.testsite2.com:5006,无额外HTTPS绑定(浏览器可能自动优先跳转HTTPS)
4. 验证配置
保存修改后的web.config,重启testsite1站点,用隐私窗口访问http://www.testsite1.com:5005,确认跳转目标为http://www.testsite2.com:5006。
内容的提问来源于stack exchange,提问作者Jey
相关产品推荐
相关产品推荐

