【问题标题】:IIS URL Rewrite : 403 - Forbidden: Access is deniedIIS URL 重写:403 - 禁止:访问被拒绝
【发布时间】:2016-06-03 11:36:13
【问题描述】:

我安装了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>

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

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

TLS 1.0 在 IIS 7.5 中启用。

我可以从哪里获得有关它究竟是什么类型的 403 错误的更多信息?

【问题讨论】:

  • 在禁用重写规则的情况下网站是否可以正常工作?
  • 是的。禁用时它工作正常。
  • 它是否适用于https?
  • 是的。我已经为它配置了 443,它工作正常。
  • 试试redirectType = "Found"或"Permanent"

标签: asp.net iis url-rewriting


【解决方案1】:

在 IIS 中启用了 SSL。我刚刚读到somewhere 在使用 URL Rewrite 2.0 时需要取消选中 SSL 设置中的 Require SSL。

我取消选择Require SSL 并单击应用。它现在工作正常。

【讨论】:

  • 这是给我的。我不敢相信我在这件事上浪费了多少时间。我认为这是一件复杂的事情,从来没有想过这是一件如此简单的事情。谢谢阿卜杜勒!
  • “某处”链接断开,但对 Force SSL 进行了有趣的修复。
  • 我建议按照以下步骤操作:blogs.technet.microsoft.com/dawiese/2016/06/07/…
  • 这对我很有帮助
  • 我通过选择重写目标的网站、选择“SSL 设置”并取消选中“需要 SSL”复选框来完成此操作。我在之前的尝试中检查过它并强制使用 SSL
【解决方案2】:

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

我的规则是将进入默认网站的根应用程序 ("/") 的 URL 重写为 "/public",但我收到了 403 错误。如果我直接请求,“/public”应用程序运行良好,如果我禁用重写规则,它也运行良好,因此权限不存在问题。

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

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

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

【讨论】:

    【解决方案3】:

    不确定这是否会有所帮助,但我发现您的规则未启用

    <rule name="Redirect to https" enabled="false" stopProcessing="true">
    

    【讨论】:

    • 规则已启用@Codeone。问题出在 SSL 设置上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多