首页 > 解决方案 > 如何将中间件配置为仅重定向 404 状态代码

问题描述

遇到 404 时,我想重定向到特定页面。

我已经尝试了几个教程和 StatusCodePages,但没有任何效果。

有没有人有 Core 3.1 的示例,它只重定向 404 而不是所有状态码?

标签: asp.net-core-3.1

解决方案


这里有几个选项,它们都应该在 .Net Core 中工作。将此添加到 web.config 文件中:

<customErrors mode="Off">
     <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" />
</customErrors>

或者您可以在 Startup.cs 中添加自己的中间件,而不是使用诊断包:

app.Use(async (context, next) =>
        {
            if(context.Response.Status == 404)
            {
                // return page
            }
            else
            {
                await next.Invoke();
            }
            // loggin
        });

推荐阅读