为什么我的 404 重定向在 web.config 中不起作用?

Why does my 404 redirect not work in my web.config?

在我的应用程序中,我有一个用于捕获所有意外错误的自定义错误和一个用于当用户尝试转到不存在的页面时的 404。问题是,在生产中,我可以通过在浏览器 window 中键入 url 的路径或滥用应用程序来成功导航到错误页面,但我不能对 404 执行相同的操作。这里是我的设置。

Error/NotFound 将代替 ~/Error/NotFound 工作,并且应启用自定义错误(取决于您从何处发出请求):

<customErrors mode="On" defaultRedirect="Error">
    <error statusCode="404" redirect="Error/NotFound" />
</customErrors>

同时设置httpErrors:

<system.webServer>
    <httpErrors errorMode="Custom" existingResponse="PassThrough">
        <clear />
        <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
    </httpErrors>
</system.webServer>

请注意,clear 将删除所有错误的静态文件。所以考虑解锁一组defaultPath of httpErrors.