![IIS 7.0:不需要的自动重定向到 HTTPS](https://linux22.com/image/801048/IIS%207.0%EF%BC%9A%E4%B8%8D%E9%9C%80%E8%A6%81%E7%9A%84%E8%87%AA%E5%8A%A8%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20HTTPS.png)
情况:
- 带有 IIS 7.0 的 WinServer 2008 R2
- 具有以下绑定的默认网站:端口 80 上的 HTTP
www.<domain>.com
和端口 上的 HTTP<domain>.com
,以及端口 443 上的 HTTPS - 无重定向(仅重写 wordpress URL 以删除“index.php”)
- 目前还没有任何网站需要 SSL(稍后将针对单个页面/应用程序进行更改)
问题:每次我<domain>.com
在任何浏览器中输入 URL 时,都会被重定向到https://www.<domain>.com
[<-- 注意“S”](不好)。当我输入 时www.<domain>.com
,它会保持原样(好)。
我反复检查了设置一百遍,但找不到导致这种情况的原因。有什么想法吗?
答案1
IIS 不会通过简单的配置进行这种重定向,更可能是响应连接的第一个页面发送重定向 - 可能是 Wordpress 或插件?
在客户端上安装带有 TamperData 插件的 FireFox,并观察 Web 请求http://域名.com看看发送到服务器的内容,看看重定向如何返回以及在哪个阶段返回 - 是否先提供任何内容,它附带哪些标头。也许这会对此有所启发?
答案2
我听从了建议,安装了 TamperData,并用 Wireshark 记录了流量。
结果:
罪魁祸首不是 IIS,而是客户端/浏览器!https://www.<domain>.com
正如两个工具所显示的那样,客户端始终通过端口 443 发送请求。因此,我清除了浏览器中的所有缓存,并删除了所有预先存在的安全异常(这些异常显然是我在通过 IIS 测试 SSL 页面时创建的,因为我的域证书是自行创建/签名的)。现在,所有这些干扰都消失了,客户端再次运行良好,只发送我实际输入的请求,因为不再存在任何异常,可以让它相信我可能更喜欢 HTTPS 尝试。
感谢您为我指明正确的方向!