我正在尝试在IIS上的网站上启用HTTPS。我想将用户从http重定向到https。
我已经在web.config中相应地更新了规则,以
<rewrite>
<rules>
<rule name="Redirect to HTTPs" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
我可以将请求转换为https,但之后它会一直使用https重定向到相同的url。问题在于,规则显然一直在重定向所有urls,包括https,然后浏览器在网络选项卡中保留大量301,并最终抛出
This webpage has a redirect loop
ERR_TOO_MANY_REDIRECTS
如果有人处理过类似的情况,请在这里帮助我。如有必要,我可以提供更多信息。
谢谢
发布于 2015-04-23 13:26:47
尝试以下重写规则。这将适用于由单个IIS服务器提供服务的网站。负载平衡环境或服务器公司需要一些调整。
<rewrite>
<rules>
<rule name="Redirect to HTTPs" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="OFF" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
您还可以查看问题和解决方案here
https://stackoverflow.com/questions/29813041
复制相似问题