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

时间:2016-07-04 06:48:08

标签: asp.net https url-rewriting web-config iis-8.5

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

<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>

1 个答案:

答案 0 :(得分:2)

您似乎忘了安装重写模块。得到它:

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