Запуская IIS 10, на котором размещено приложение .NET MVC 5, я получаю разные ошибки в зависимости от URL-адреса:
https://example.com/myapplication/thisDoesNotExist -- returns my custom 404 (what I want)
https://example.com/myapplication/thisDoesNotExist+Either - returns a 403 (it needs to be 404)
https://example.com/myapplication/scripts/ -- this does exist and returns my custom 404 (what I want)
https://example.com/myapplication/bin/ -- this does exist but returns a 403 (it needs to be a 404)
Я немного потерялся и крутит колеса, пытаясь понять это. Я действительно не понимаю, почему каталог bin должен быть 403, но скрипты правильно перенаправлены на 404.
Я нашел пару сообщений, в одном из них предлагалось добавить это в web.config приложения:
<add name="StopDirectoryBrowsing" path="*." resourceType="Directory" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
Это не имеет значения.
Мои пользовательские правила ошибок выглядят так:
<system.web>
<customErrors mode="On" redirectMode="ResponseRewrite" allowNestedErrors="false">
<error statusCode="403" redirect="~/403.aspx" />
<error statusCode="404" redirect="~/404.aspx" />
<error statusCode="500" redirect="~/500.aspx" />
</customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="403" />
<remove statusCode="404" />
<remove statusCode="500" />
<error statusCode="403" path="/403.aspx" responseMode="ExecuteURL" />
<error statusCode="404" path="/404.aspx" responseMode="ExecuteURL" />
<error statusCode="500" path="/500.aspx" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
Есть ли способ обойти это?