我在 Web.config 中定义了以下规则:
<rule name="Enforce canonical hostname" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.mydomain\.org$" />
</conditions>
<action type="Redirect" url="http://www.mydomain.com/" redirectType="Permanent" />
</rule>
我所经历的事情很奇怪......
我似乎被重定向到https://www.mydomain.com/ 导致我的浏览器挂起。我没有启用 SSL 加密,也没有任何特殊授权规则。有问题的 Web 服务器位于 F5 负载均衡器后面。
有任何想法吗?
答案1
为站点启用失败请求跟踪,并跟踪任何响应代码(对我来说 100-500 有效),并启用所有选项。
获得日志后,请使用紧凑视图,并检查您作为输入传递的内容以及作为输出发送的内容是否与您的规则期望看到的内容相符。
如果 Web 服务器以 301/302 结束http://www.example.com,你知道*你的问题是外部的。
我不能代表 F5 发言,但使用 ISA,如果您以 HTTPS 形式遍历连接一次,它会将后续请求升级/重定向到 HTTPS,以避免出现 cookie-in-the-clear 类型的情况。
答案2
负载均衡器正在重写重定向以始终使用 HTTPS。请参阅可以在负载均衡器后面从 HTTPS 重定向到 HTTP 吗?了解更多信息。