我有一个带有自定义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中它可以正常工作。
所以我的问题是:
答案 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小部件,那就太棒了!