ASP.NET設(shè)置404頁面返回302HTTP狀態(tài)碼的解決方法
更新時間:2013年09月13日 17:36:50 作者:
訪問網(wǎng)站時錯誤頁面可正常顯示,但HTTP狀態(tài)碼卻是302,對SEO很不友好,按下列步驟修改使錯誤頁面返回正確的利于SEO的404狀態(tài)碼,感興趣的朋友可以了解下
在配置文件中配置404頁面如下:
<customErrors mode="On" defaultRedirect="404.aspx">
<error statusCode="403" redirect="404.aspx" />
<error statusCode="404" redirect="404.aspx" />
<error statusCode="400" redirect="404.aspx" />
</customErrors>
訪問網(wǎng)站時錯誤頁面可正常顯示,但HTTP狀態(tài)碼卻是302,對SEO很不友好,按下列步驟修改使錯誤頁面返回正確的利于SEO的404狀態(tài)碼:
1、在404.aspx中加入代碼:
Response.Status = "404 Moved Permanently";
如果你沒有做偽靜態(tài),或者沒加腳本映射,以上完全沒有問題,不必往下看了。如果做了偽靜態(tài),那么404頁面返回的狀態(tài)碼仍然為302,請看第二步。
2、在 Global.asax 中加入下面的代碼:
protected void Application_Error(object sender, EventArgs e)
{
//在出現(xiàn)未處理的錯誤時運行的代碼
this.FileNotFound_Error();
}
/// <summary>
/// 404錯誤處理
/// </summary>
private void FileNotFound_Error()
{
HttpException erroy = Server.GetLastError() as HttpException;
if (erroy != null && erroy.GetHttpCode() == 404)
{
Server.ClearError();
string path = "~/404.aspx";
Server.Transfer(path);
//Context.Handler = PageParser.GetCompiledPageInstance(path, Server.MapPath(path), Context);
}
}
至此,這個頑固的問題得以解決。
復(fù)制代碼 代碼如下:
<customErrors mode="On" defaultRedirect="404.aspx">
<error statusCode="403" redirect="404.aspx" />
<error statusCode="404" redirect="404.aspx" />
<error statusCode="400" redirect="404.aspx" />
</customErrors>
訪問網(wǎng)站時錯誤頁面可正常顯示,但HTTP狀態(tài)碼卻是302,對SEO很不友好,按下列步驟修改使錯誤頁面返回正確的利于SEO的404狀態(tài)碼:
1、在404.aspx中加入代碼:
Response.Status = "404 Moved Permanently";
如果你沒有做偽靜態(tài),或者沒加腳本映射,以上完全沒有問題,不必往下看了。如果做了偽靜態(tài),那么404頁面返回的狀態(tài)碼仍然為302,請看第二步。
2、在 Global.asax 中加入下面的代碼:
復(fù)制代碼 代碼如下:
protected void Application_Error(object sender, EventArgs e)
{
//在出現(xiàn)未處理的錯誤時運行的代碼
this.FileNotFound_Error();
}
/// <summary>
/// 404錯誤處理
/// </summary>
private void FileNotFound_Error()
{
HttpException erroy = Server.GetLastError() as HttpException;
if (erroy != null && erroy.GetHttpCode() == 404)
{
Server.ClearError();
string path = "~/404.aspx";
Server.Transfer(path);
//Context.Handler = PageParser.GetCompiledPageInstance(path, Server.MapPath(path), Context);
}
}
至此,這個頑固的問題得以解決。
相關(guān)文章
利用VS2019創(chuàng)建Web項目并發(fā)送到IIS及IIS與ASP.NET配置教程
這篇文章主要介紹了利用VS2019創(chuàng)建Web項目,并發(fā)送到IIS,以及IIS與ASP.NET配置,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
asp.net Cookie跨域、虛擬目錄等設(shè)置方法
Cookie跨域、虛擬目錄等設(shè)置方法,需要的朋友可以參考下。2009-11-11
.NET 6開發(fā)TodoList應(yīng)用之實現(xiàn)PUT請求
PUT請求本身其實可說的并不多,過程也和創(chuàng)建基本類似。這篇文章主要為大家介紹了.NET6實現(xiàn)PUT請求的示例詳解,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2021-12-12
c# .net在WEB頁中的COOKIES設(shè)置技巧
c# .net在WEB頁中的COOKIES設(shè)置技巧,需要的朋友可以參考下。2011-07-07

