IIS URL重写:403 - 禁止访问:拒绝访问

Abd*_*dul 8 asp.net iis url-rewriting

我安装IIS URL Rewrite 2.0并添加了一条规则,将所有http链接重定向到https.这是我的Web.Config代码:

 <rewrite>
        <rules>
            <rule name="REdirect To HTTPS" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTPS}" pattern="^OFF$" />
                </conditions>
                <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
            </rule>
        </rules>
    </rewrite>
Run Code Online (Sandbox Code Playgroud)

一切都很好看.但是当我使用http访问我的网站时,它会抛出403错误.

403 - Forbidden: Access is denied.
You do not have permission to view this directory or page using the credentials that you supplied.
Run Code Online (Sandbox Code Playgroud)

IIS 7.5启用了TLS 1.0.

我可以在哪里获得有关403错误的确切类型的更多信息?

Abd*_*dul 22

在IIS中启用了SSL.我刚刚读到某个地方,在Require SSL使用URL Rewrite 2.0时,需要取消选中SSL设置.

我取消选择Require SSL并单击"应用".它的工作正常.

  • 这是给我的。我简直不敢相信我在这上面浪费了多少时间。我认为这是一件复杂的事情,从没想过它会如此简单。谢谢阿卜杜勒! (2认同)

Rem*_*yth 10

我遇到了同样的错误;这是我的解决方案,以防对其他人有帮助。

我的规则是将进入默认网站根应用程序(“/”)的 URL 重写为“/public”,但我收到了 403 错误。如果我直接请求,“/public”应用程序工作得很好,如果我禁用重写规则,它也工作得很好,所以那里的权限不存在问题。

正如之前的答案中所述,未选中“需要 SSL”。

查看 IIS 日志文件,我发现错误的具体类型是 403.18 - “无法在当前应用程序池中执行请求的 URL”。

需要为网站的根应用程序分配与您向其发送请求的应用程序相同的应用程序池。