Я пытаюсь настроить правило перезаписи URL-адреса IIS для соответствия 403 ответам в результате того, что кто-то пытается перейти к каталогу, когда просмотр каталогов отключен. Я хочу, чтобы затем перенаправить их на обычные страницы пользовательских ошибок ASP.NET, которые я определил для 404.
Вот что я имею в настоящее время:
<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.
Поведение на данный момент - это... ничего. Я все еще вижу 403s независимо от того, сколько настроек я делаю. Какие-нибудь идеи там?
Кстати, нет, на сайте нет никаких законных 403s, которые будут проглочены в результате этого. Я мог бы также создавать входящие правила для каждого пути, которые могут привести к выполнению условия, но это не очень масштабируемое.