我正在尝试在 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。问题是该规则显然一直将所有 url 重定向到 https,然后网络选项卡中的浏览器保留大量 301 并最终抛出
This webpage has a redirect loop
ERR_TOO_MANY_REDIRECTS
如果有人遇到过类似情况,请帮帮我。如有必要,我可以提供更多信息。
谢谢
最佳答案
尝试以下重写规则。这适用于由单个 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
关于c# - IIS 中的 HTTP 重定向问题,在浏览器上不断出现 ERR_TOO_MANY_REDIRECTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29813041/