访问ASP.NET应用程序的子目录时如何将用户重定向到应用程序的根目录,而不是403.14错误页面

时间:2018-07-09 18:53:36

标签: asp.net iis

我在单个IIS网站下运行多个ASP.NET应用程序。

我不希望用户能够在这些应用程序中查看目录内容,并且IIS禁用了目录列表(我无法控制此列表,因为这取决于服务器管理员)。

如果用户尝试访问其中一个应用程序中的文件夹中的内容,我希望将该用户退回至应用程序根目录,以便可以为该应用程序加载默认页面,而不是显示令人讨厌的IIS错误页面。

例如,访问此URL:host/app1/subfolder/会将用户反弹回host/app1,而访问此其他URL:host/app2/subfolder1/subfolder2会将用户反弹回host/app2(我不会不想让用户跳到host;必须跳到相应的应用首页)。

这具有挑战性,因为IIS似乎依赖扩展来路由ASP.NET URL,即使在IIS中此配置看起来像是分层的,也无法正常工作。例如,我尝试将其放在web.config中,IIS在配置页面上显示了它,但是在路由时似乎忽略了它:(httpErrors进入system.webServer

<httpErrors>
    <remove statusCode="403" subStatusCode="14" />
    <error statusCode="403" subStatusCode="14" path="/app1" responseMode="ExecuteURL" />
</httpErrors>

有什么办法可以做到这一点?当然,如果我在IIS网站级别(而不是在应用程序级别)配置错误页面,则它会选择403.14自定义路由。这是一个错误还是我做错了什么?我不明白,如果IIS不遵守,为什么我可以在应用程序级别覆盖web.config中的403.14。

有什么提示吗?谢谢!

enter image description here

0 个答案:

没有答案