ASP.NET設(shè)置404頁面返回302HTTP狀態(tài)碼的解決方法
更新時(shí)間:2013年09月13日 17:36:50 作者:
訪問網(wǎng)站時(shí)錯(cuò)誤頁面可正常顯示,但HTTP狀態(tài)碼卻是302,對(duì)SEO很不友好,按下列步驟修改使錯(cuò)誤頁面返回正確的利于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)站時(shí)錯(cuò)誤頁面可正常顯示,但HTTP狀態(tài)碼卻是302,對(duì)SEO很不友好,按下列步驟修改使錯(cuò)誤頁面返回正確的利于SEO的404狀態(tài)碼:
1、在404.aspx中加入代碼:
Response.Status = "404 Moved Permanently";
如果你沒有做偽靜態(tài),或者沒加腳本映射,以上完全沒有問題,不必往下看了。如果做了偽靜態(tài),那么404頁面返回的狀態(tài)碼仍然為302,請(qǐng)看第二步。
2、在 Global.asax 中加入下面的代碼:
protected void Application_Error(object sender, EventArgs e)
{
//在出現(xiàn)未處理的錯(cuò)誤時(shí)運(yùn)行的代碼
this.FileNotFound_Error();
}
/// <summary>
/// 404錯(cuò)誤處理
/// </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);
}
}
至此,這個(gè)頑固的問題得以解決。
復(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)站時(shí)錯(cuò)誤頁面可正常顯示,但HTTP狀態(tài)碼卻是302,對(duì)SEO很不友好,按下列步驟修改使錯(cuò)誤頁面返回正確的利于SEO的404狀態(tài)碼:
1、在404.aspx中加入代碼:
Response.Status = "404 Moved Permanently";
如果你沒有做偽靜態(tài),或者沒加腳本映射,以上完全沒有問題,不必往下看了。如果做了偽靜態(tài),那么404頁面返回的狀態(tài)碼仍然為302,請(qǐng)看第二步。
2、在 Global.asax 中加入下面的代碼:
復(fù)制代碼 代碼如下:
protected void Application_Error(object sender, EventArgs e)
{
//在出現(xiàn)未處理的錯(cuò)誤時(shí)運(yùn)行的代碼
this.FileNotFound_Error();
}
/// <summary>
/// 404錯(cuò)誤處理
/// </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);
}
}
至此,這個(gè)頑固的問題得以解決。
您可能感興趣的文章:
- 解決jQuery上傳插件Uploadify出現(xiàn)Http Error 302錯(cuò)誤的方法
- jQuery Uploadify 上傳插件出現(xiàn)Http Error 302 錯(cuò)誤的解決辦法
- firefox瀏覽器用jquery.uploadify插件上傳時(shí)報(bào)HTTP 302錯(cuò)誤
- HttpClient的RedirectStrategy重定向處理核心機(jī)制
- Javaweb-HttpServletResponse的sendRedirectch重定向方式
- 詳解golang開發(fā)中http請(qǐng)求redirect的問題
- 舉例分析HTTP?302?Redirect工作原理
相關(guān)文章
利用VS2019創(chuàng)建Web項(xiàng)目并發(fā)送到IIS及IIS與ASP.NET配置教程
這篇文章主要介紹了利用VS2019創(chuàng)建Web項(xiàng)目,并發(fā)送到IIS,以及IIS與ASP.NET配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03asp.net Cookie跨域、虛擬目錄等設(shè)置方法
Cookie跨域、虛擬目錄等設(shè)置方法,需要的朋友可以參考下。2009-11-11.NET 6開發(fā)TodoList應(yīng)用之實(shí)現(xiàn)PUT請(qǐng)求
PUT請(qǐng)求本身其實(shí)可說的并不多,過程也和創(chuàng)建基本類似。這篇文章主要為大家介紹了.NET6實(shí)現(xiàn)PUT請(qǐng)求的示例詳解,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2021-12-12visual studio 2019正式版安裝簡(jiǎn)單教程
這篇文章主要為大家詳細(xì)介紹了visual studio 2019正式版安裝簡(jiǎn)單教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06AspNetPager與Socut.Data使用實(shí)例代碼
最近對(duì)AspNetPager與Socut.Data這兩個(gè)控件產(chǎn)生了濃厚的興趣,這兩個(gè)控件配合可以減輕很多程序員編寫代碼的壓力。ASpNetPager為分頁控件,而Socut.Data為數(shù)據(jù)操作控件,ACCESS,MSSQL都可以。2008-07-07c# .net在WEB頁中的COOKIES設(shè)置技巧
c# .net在WEB頁中的COOKIES設(shè)置技巧,需要的朋友可以參考下。2011-07-07