【发布时间】:2014-10-24 02:25:53
【问题描述】:
我正在尝试设置一个 IIS URL 重写规则来匹配 403 响应,因为在禁用目录浏览时有人试图浏览到一个目录。然后我想将它们重定向到我为 404 定义的常用 ASP.NET 自定义错误页面。
这是我目前拥有的:
<outboundRules>
<!-- By default, browsing a directory with no default resource will return 403 -->
<rule name="Directory browsing location">
<match serverVariable="RESPONSE_LOCATION" pattern="(.*)" />
<conditions>
<add input="{RESPONSE_STATUS}" pattern="^403" />
</conditions>
<action type="Rewrite" value="/Error/PageNotFound?aspxerrorpath={PATH_INFO}"/>
</rule>
<rule name="Directory browsing status code" patternSyntax="ExactMatch">
<match serverVariable="RESPONSE_STATUS" pattern="403" />
<action type="Rewrite" value="302" />
</rule>
</outboundRules>
我的假设是它需要是一个出站规则,并且我需要重写状态代码并添加位置响应标头,尽管原始 403 响应无论如何都不存在后者。
目前的行为是......什么都没有。不管我做了多少调整,我仍然看到 403。有什么想法吗?
顺便说一句,不,网站上没有任何合法的 403 会因此而被吞没。我还可以为每个可能导致满足条件的路径创建入站规则,但这不是很可扩展。
【问题讨论】:
标签: asp.net iis url-rewriting web-config url-rewrite-module