我安装了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.
使用IIS 7.5启用TLS 1.0。
我可以在哪里获得有关403错误的确切类型的更多信息?
答案 0 :(得分:20)
在IIS中启用了SSL。我刚刚阅读somewhere,在使用网址重写2.0时,需要取消选中SSL设置Require SSL
。
取消选择Require SSL
,然后点击“应用”。它的工作正常。
答案 1 :(得分:2)
我遇到了同样的错误;这是我的解决方案,以防其他人使用。
我的规则是将进入默认网站的根应用程序(“ /”)的URL重写为“ / public”,但是我遇到了403错误。如果直接请求“ / public”应用程序,则它运行良好;如果禁用了重写规则,则该应用程序也将运行良好,因此权限不成问题。
如先前的回答所述,未选中“需要SSL”。
查看IIS日志文件,发现错误的具体类型为403.18-“无法在当前应用程序池中执行请求的URL”。
需要为网站的根应用程序分配与您向其发送请求的应用程序相同的应用程序池。
答案 2 :(得分:0)
它不确定这是否会有所帮助,但我发现你的规则未启用
<rule name="Redirect to https" enabled="false" stopProcessing="true">