Google 404和.NET自定义错误页面

时间:2008-09-30 09:01:09

标签: asp.net http-status-code-404 google-widget

我有一个带有自定义404页面的ASP.NET 2.0网站。如果未找到内容,则网站将使用aspxerrorpath = / mauro.aspx添加查询字符串来提供自定义404页面。 404页面本身的状态为HTTP状态为200.要尝试解决此问题,我已添加

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.StatusCode = 404;
    }

我添加了Google小部件,并且有两个问题。在Internet Explorer 7中,它不显示应该显示的位置。如果我将它添加到内容中,我会在char 79行226或其附近出现“未知错误”;如果我将其添加到头部,则搜索框将显示在内容上方。在Firefox中它可以正常工作。

所以我的问题是:

  1. 如何显示小部件 内联?
  2. 如何制作错误页面 渲染为404与原始 文件的名称和路径 请求时,我要求 mauro.aspx我得到的内容 404页面,但URL为 mauro.aspx? (我想我会 必须做一些URL rewriting begin_request global.asax文件,但是 我想在此之前得到证实 做任何愚蠢的事。)

2 个答案:

答案 0 :(得分:10)

ASP.NET 3.5 SP1中有一种新的重定向模式,您现在可以使用它,因此它不会重定向。它显示错误页面,但保持URL相同:

“对于URL重定向也很好。如果您将web.config中的redirectMode设置为”responseRewrite“,则可以避免重定向到自定义错误页面并保持浏览器中的URL不变。”

答案 1 :(得分:1)

我通过在global.asax文件中执行此操作来处理404

protected void Application_BeginRequest(object sender, EventArgs e)
{
    string url = Request.RawUrl;
    if ((url.Contains(".aspx")) && (!System.IO.File.Exists(Server.MapPath(url))))
    {
        Server.Transfer("/Error/FileNotFound.aspx");
    }
}

现在,如果有人可以帮助我使用google小部件,那就太棒了!