我长期以来一直在努力解决这个问题。我真的希望有人可以帮我解决这个问题。
使用URL重写:
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
非常标准的东西。这就是它变得奇怪的地方:
上述规则已在父网站上实施。重定向在父网站上的工作时间最多,但是有一些页面(并且它是一致的)它将只是。将。不。将它们重定向到HTTPS。
该父站点还有几个子站点(Web服务,api,其他等)。在子站点上,NONE页面将重定向,即使看起来好像在父站点上放置的规则也被所有子站点继承。
好的,这就是它变得更加奇怪的地方:
使用this excellent tutorial,我设置了失败的请求跟踪。然后,我立即尝试通过在不在Web服务器上的浏览器中加载页面来加载其中一个不重定向的页面。例如:
HTTP://v10staging.mydomain.com/some-sub-page
注意:我请求了HTTP而不是HTTPS。然后,我看了一下失败的日志,这就是显示的内容:
虽然我请求了HTTP,但它实际上已经记录为HTTPS。如果我错了,请告诉我,但看起来服务器认为请求已经在https,这就是为什么它没有被重定向。
什么。是。展望。上?我该如何解决?