在这里疯狂。我有一条规则,要将所有网页从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>