在与 IIS 8.5 (ASP.NET) 兼容的 WEB.CONFIG 中将 HTTP 重定向到 HTTPS

Redirect HTTP to HTTPS in WEB.CONFIG compatible with IIS 8.5 (ASP.NET)

这里太疯狂了。我有一个规则,将所有页面从 HTTP 重定向到 HTTPS,这在 IIS8 中工作得很好,但我在 IIS 8.5 中遇到 500 内部服务器错误。 我认为我缺少一些配置,但在搜索了几个小时并尝试了 web.config 文件中 system.WebServer 中的重写规则的各种不同更改后,我不知所措。 这是代码(大约 5 个变体之一 - none 其中有效)

<rewrite>
  <rules>
    <rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
        <match url="(.*)" />
        <conditions logicalGrouping="MatchAny">
          <add input="{SERVER_PORT_SECURE}" pattern="^0$" />
        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

而不是简单地在 MasterPage 中写这个(我可以这样做,但是这个该死的东西在升级之前工作得很好),我缺少什么吗?也许是配置?

另一个可用的版本(在 IIS8.5 托管的另一个站点上)

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

您似乎忘记安装 rewriteurl 模块。在这里获取:

http://www.iis.net/downloads/microsoft/url-rewrite