IIS URL HTTP到HTTPS重定向在ASP.Net应用程序上不起作用

问题描述

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

该应用程序托管在子域(webapp.website.com)上,并且通过主域网站提供了用于登录系统的链接,所以到目前为止,我还没有注意到这一点。

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

服务器错误 403-禁止访问:访问被拒绝。 您无权使用您提供的凭据查看此目录或页面

如果您手动输入https://webapp.website.com(这是链接的设置),则应用程序可以正常连接,并且可以正常运行。

我在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。