IIS URL HTTP 到 HTTPS 重定向不适用于 ASP.Net 应用程序

IIS URL HTTP to HTTPS redirect not working on ASP.Net application

我有一个 ASP.Net 应用程序托管在安装了 Plesk 的网络服务器上。

该应用程序托管在子域 (webapp.website.com) 上,登录系统的 link 是通过主域网站提供的,所以我直到现在才注意到这一点现在。

如果您输入 webapp.website.comhttp://webapp.website.com,该网站将连接到不安全的页面并出现以下错误:

Server Error 403 - Forbidden: Access is denied. You do not have permission to view this directory or page using the credentials that you supplied.

如果您手动输入 https://webapp.website.com(这是 link 的设置),应用程序连接正常并按预期工作。

我在 Plesk 中启用了永久重定向到 HTTPS,并在 IIS 管理器中手动编写了重定向规则,但由于某种原因它似乎忽略了此规则,因为服务器连接在 HTTP 中失败并显示服务器错误改为页面。

如何解决重定向问题以停止 HTTP 错误,或者跳过并重定向到 HTTPS?

我怀疑你的规则可能有问题,你可以试试下面的规则:

      <rewrite>
            <rules>
                <rule name="Test" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="OFF" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>

此规则会将所有 http 请求重定向到 https。