HTTPS重定向会导致循环 - IIS

时间:2015-12-22 17:21:53

标签: redirect iis https

这里的第一次海报。我有一个问题迫使特定网站https。我试过的是web.config中的多个url重写代码块强制它为https,但每次尝试时,我都会继续循环。 我得到循环的原因,我相信是因为另一家公司拥有该网址,它正被重定向到我们。以下是我的想法:

  • 网址,让我们说test.othercompany.com会被重定向到 我们拥有的负载均衡器DNS名称。
  • 请求到达负载均衡器后,它将被定向到我们的IIS 我们有绑定的服务器 网站上的test.othercompany.com。
  • 有了https重写,它将需要 http://www.test.othercompany.com网站,将其重定向到 https://www.test.othercompany.com,在我看来,那就是 将其重定向到其他公司的名称服务器,然后这将是 再次将它重定向给我们,因此这就是循环发挥作用的地方。

我对这个假设是否正确?

我试图找到任何方法强制这个https而不会得到这个循环。任何想法或建议?我也对任何故障排除想法持开放态度。我尝试使用Fiddler,但它只是向我展示了循环,这是我能看到的。

这是迄今为止我尝试过的配置,它给了我循环:

<rewrite>
    <rules>
        <rule name="HTTP to HTTPS redirect" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="off" ignoreCase="true" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
        </rule>
    </rules>
</rewrite>

还有这一个:

<rewrite>
    <rules>
        <rule name="TM_HTTP_TO_HTTPS" enabled="true" stopProcessing="true">
            <match url="(.*)" ignoreCase="true" />
            <conditions logicalGrouping="MatchAll">
              <!--IF HOST IS TEST.OTHERCOMPANY.COM -->
              <add input="{HTTP_HOST}" pattern="^www\.test\.othercompany\.com$" ignoreCase="true" />

              <!--IF REQUESTED URL IS ON HTTP PROTOCOL MEANS NON SECURE PORT (PORT!=443) -->
              <add input="{SERVER_PORT}" pattern="^443$" negate="true" />
            </conditions>
            <!--Redirect ON HTTPS PROTOCOL -->
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" logRewrittenUrl="true" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

谢谢。

0 个答案:

没有答案