gpt4 book ai didi

asp.net - 在 ASP.NET 中实现 404 的最佳方法

转载 作者:行者123 更新时间:2023-12-03 07:55:49 28 4
gpt4 key购买 nike

我正在尝试确定在标准 ASP.NET Web 应用程序中实现 404 页面的最佳方式。我目前在 Global.asax 文件的 Application_Error 事件中捕获 404 错误并重定向到友好的 404.aspx 页面。问题是请求看到 302 重定向,然后是 404 页面丢失。有没有办法绕过重定向并立即响应包含友好错误消息的 404?

网络爬虫(例如 Googlebot)是否关心对不存在的页面的请求是否返回 302 后跟 404?

最佳答案

在 Global.asax 的 OnError 事件中处理这个:

protected void Application_Error(object sender, EventArgs e){
// An error has occured on a .Net page.
var serverError = Server.GetLastError() as HttpException;

if (serverError != null){
if (serverError.GetHttpCode() == 404){
Server.ClearError();
Server.Transfer("/Errors/404.aspx");
}
}
}

在错误页面中,您应该确保正确设置状态代码:
// If you're running under IIS 7 in Integrated mode set use this line to override
// IIS errors:
Response.TrySkipIisCustomErrors = true;

// Set status code and message; you could also use the HttpStatusCode enum:
// System.Net.HttpStatusCode.NotFound
Response.StatusCode = 404;
Response.StatusDescription = "Page not found";

您还可以很好地处理此处的各种其他错误代码。

Google 通常会遵循 302,然后遵循 404 状态代码 - 因此您需要确保在错误页面上返回该代码。

关于asp.net - 在 ASP.NET 中实现 404 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667053/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com