【问题标题】:IIS Redirect HTTP to HTTPS Redirect LoopIIS 将 HTTP 重定向到 HTTPS 重定向循环
【发布时间】:2018-01-18 00:29:28
【问题描述】:

我有一个站点设置来使用 SSL 证书并通过 https 为站点提供服务。但是,我无法让 URL 重写正常工作以重定向尝试的连接尝试以遵循某些规则,这些规则最终会导致使用特定的 url。

此时出于安全考虑,我只说域名是:example.com

我正在尝试做的是以下内容。

例如,假设我有这些之前/之后:

等等。但是,无论我使用什么示例,我都可以在网上找到执行 HTTP 到 HTTPS 重定向的示例,我只剩下 IIS 会导致无限循环重定向并且永远无法正常工作。

在 IIS 中站点上的绑定如下:

  • 类型:http / 主机名:www.example.com / 端口:80 / IP 地址:*
  • 类型:http / 主机名:example.com / 端口:80 / IP 地址:*
  • 类型:https / 主机名:www.example.com / 端口:443 / IP 地址:*

【问题讨论】:

  • 能否请您从 web.config 添加您的规则列表。

标签: ssl redirect iis https url-rewriting


【解决方案1】:

我用这个

<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="Found" />
    </rule>
  </rules>
</rewrite>

【讨论】:

  • 这会产生与重定向循环相同的问题。
  • 我现在从生产服务器上复制了这个。你确定没有其他的重写规则吗?
  • 是的,我唯一的重写规则是测试时的这条规则,它并没有阻止循环的发生。对该问题的进一步调查表明,Cloudflare 是部分原因,但我确实设法让它工作。
  • 虽然它是一个旧帖子,但我可能会面临与 Let's Encrypt 类似的问题。你能告诉我你是怎么解决的吗?
猜你喜欢
  • 2015-12-08
  • 1970-01-01
  • 2019-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 2013-05-02
相关资源
最近更新 更多