【问题标题】:Google 404 and .NET Custom Error PagesGoogle 404 和 .NET 自定义错误页面
【发布时间】:2010-09-14 05:12:54
【问题描述】:

我有一个带有自定义 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 为 毛罗.aspx? (我假设我会 必须做一些URL rewriting 在 begin_request global.asax 文件,但是 希望在我之前确认这一点 做傻事。)

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,但我们在本例中使用的是 .Net 2.0,但我会牢记 .net 3.5 sp1 信息。
    • 射击我真的很抱歉,当我读完它时,我一定忘记了你帖子的 2.0 部分。我的错。
    • 没问题,我可以用它作为将来使用 3.5 的参数:)
    • 赞成,因为这仍然很有帮助,很高兴明确 2.0 在这方面被破坏了
    【解决方案2】:

    我已经在 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 小部件,那就太好了!

    【讨论】:

    • 这对性能至关重要,您在每次请求时都检查文件是否存在。
    • 正确,我可以将结果存储在字典或类似的字典中,以便更快地检查...
    猜你喜欢
    • 2011-07-25
    • 2016-04-25
    • 2013-09-16
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多