首页 > 解决方案 > HTTP 请求被记录为 HTTPS 并且不会重定向

问题描述

伙计,我已经为此苦苦挣扎了很长时间。我真的希望有人能帮我解决这个问题。

使用 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 等)。在子站点上,没有任何页面会重定向,即使看起来好像在父站点上放置的规则被所有子站点继承了。

好的,这就是它变得更加奇怪的地方:

使用这个优秀的教程,我设置了失败的请求跟踪。然后,我立即尝试通过在浏览器中加载页面而不是在 Web 服务器上来加载未重定向的页面之一。例子:

HTTP://v10staging.mydomain.com/some-sub-page

注意:我请求的是 HTTP 而不是 HTTPS。然后,我查看了失败的日志,结果如下:

在此处输入图像描述

虽然我请求了 HTTP,但它实际上被记录为 HTTPS。如果我错了请告诉我,但看起来服务器认为请求已经在 https,这就是它没有被重定向的原因。

什么。是。去。上?我该如何解决?

标签: asp.net.netiisurl-rewritingiis-8.5

解决方案


推荐阅读