作者:亲清吻文kiss | 来源:互联网 | 2023-05-17 20:06
今天SEO说,我们的自定义跳转错误页并不友好,因为在使用redirec时,先返回了302,然后才跳转到404自定义页面上去的,被百度视为异常跳转。为了解决这个小问题,网上查了下,看到这篇文章tp:
今天SEO说,我们的自定义跳转错误页并不友好,因为在使用redirec时,先返回了302,然后才跳转到404自定义页面上去的,被百度视为异常跳转。为了解决这个小问题,网上查了下,看到这篇文章tp://www.cnblogs.com/death029/archive/2011/07/29/2120889.html
看后感觉虽然是解决了问题,但并不是我想要的,因为我需要在页面中控制判断信息是否存在。那么我的解决方案:
1:错误页代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.StatusCode = 404;
string msg = Requests.GetQueryStringString("msg");
if (!string.IsNullOrEmpty(msg))
{
this.ltlContent.Text = this.Server.UrlDecode(msg);
}
else
{
this.ltlContent.Text = Config.ErrorProInfo;
}
}
2:通用方法代码
///
/// 获取并显示友好错误页信息(在当前页显示错误信息,友好SEO)
///
/// 错误信息
/// 当前页对象
public static void ShowError(System.Web.UI.Page page, string message)
{
page.Server.Execute(string.Format("/common/error.aspx?msg={0}", HttpUtility.UrlEncode(message, Encoding.UTF8)), true);
page.Response.End();
}
3:页面调用代码:
if(true)
{
xxxxx;
}
else
{
Errors.ShowError(this.Page, "对不起!你所查找的数据不存在或已删除!");
}
主要用到了Server.Execute方法来加载指定错误页面内容,并在当前页显示,避免了进行多次请求而导致的302-》404的异常跳转;
分享一下,欢迎拍砖!