如何将所有页面扩展重定向到 asp.net 项目中的自定义 404 未找到页面

本文关键字:项目 自定义 net asp 扩展 重定向 | 更新日期: 2023-09-27 18:37:17

我正在尝试在我的 asp.net 项目中创建自定义页面。我为 404 未找到错误创建了一个页面。这是 Web 配置的一部分:

<customErrors  mode="On" defaultRedirect="Errors.aspx">
      <error statusCode="404" redirect="404.aspx"/>
</customErrors>

当我写到像"(websitename)/asdfasdf.aspx"这样的Web浏览器时,我可以看到我创建的自定义错误页面,但是当我写"(websitename)/asdfasdf"时,我看到"服务器错误/404 - 找不到文件或目录"页面(默认错误页面)。

您知道如何将所有页面扩展重定向到我的自定义错误页面吗?

如何将所有页面扩展重定向到 asp.net 项目中的自定义 404 未找到页面

在 global.asax 文件中的Application_Error中,找到服务器错误代码并根据错误代码重定向到相应的页面:

    protected void Application_Error(object sender, EventArgs e)
    {
        Exception exception = Server.GetLastError();
        Response.Clear();
        HttpException httpException = exception as HttpException;
        if (httpException != null)
        {
            string redirectToPage;
            switch (httpException.GetHttpCode())
            {
                // page not found
                case 404:
                    redirectToPage = "(websitename)/PageNotFoundError.aspx";
                    break;
                default:
                    redirectToPage = "(websitename)/GeneralError.aspx";
                    break;
            }
            Response.Redirect(redirectToPage);
        }
    }

我找到了解决方案。我正在使用托管到我的网站,因此在托管中有一个设置来设置 404 未找到页面。所以,它解决了。