c# - IIS 中的 HTTP 重定向问题,在浏览器上不断出现 ERR_TOO_MANY_REDIRECTS

标签 c# iis https redirect

我正在尝试在 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/

相关文章:

c# - 在代码中使用 System.data 命名空间时未找到 OleDbConnection

c# - SHIFT + 滚动可在 ScrollViewer UWP 中水平滚动

iis - IIS7 中的文件安全(IP 地址访问限制)

windows - docker :manifest for microsoft/windowsservercore:latest not found

java - Android 上不一致的 SSLv3 握手失败

svn - git svn : password for svn is not stored

c# - 如何在不知道速度的情况下计算轨迹的角度

c# - 如何在线程中传递引用并获取返回值?

c# - IIS 中托管的 WCF 服务库的 log4net

c# - 使用 https 和基本身份验证的 http web 请求