IIS:Web.Config 中带有 HTTPS 重定向规则的 ERR_TOO_MANY_REDIRECTS

问题描述 投票:0回答:1

我在 IIS 服务器上托管一个网站(作为 ARR 代理),并且我想将所有 HTTP 流量重定向到 HTTPS。但是,当我在 web.config 文件中启用重定向规则时,浏览器会返回

ERR_TOO_MANY_REDIRECTS

我已尝试解决此问题,但似乎无法解决。详情如下:

这是我在 web.config 文件中用于重定向的规则:

<rule name="http to https" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^(www.)?example\.com$" />
        <add input="{HTTPS}" pattern="^OFF$" />
    </conditions>
    <action type="Redirect" url="https://example.com/{R:1}" redirectType="Found" />
</rule>

我尝试过的:

  1. 检查 SSL 证书:它有效且工作正常。
  2. 禁用重定向规则:禁用该规则允许站点在不重定向的情况下加载,但仅限于 HTTP。
  3. 已验证的 DNS: 一条记录指向正确的 IP 地址。 ping 和 nslookup 返回预期的 IP 地址。
  4. 清除浏览器缓存和cookie。

什么可能导致 IIS 中的 HTTPS 重定向出现 ERR_TOO_MANY_REDIRECTS 错误?如何修复配置以确保正确重定向而不导致重定向循环?

任何帮助或建议将不胜感激!

http-redirect iis https web-config
1个回答
0
投票

此规则还匹配已经是 HTTPS 的流量。因此,当有人尝试访问您的网站时,该规则也会触发,因为

(.*)
表达式匹配所有内容。

这又会导致重定向,这是对服务器的新请求。新请求意味着它会再次处理规则,这将再次“始终”匹配。所以它重定向...这是一个新的请求,它再次处理规则,这是另一个重定向。

© www.soinside.com 2019 - 2024. All rights reserved.