如何将404(坏网址)重定向到主页

时间:2011-02-22 19:06:27

标签: asp.net http-status-code-404 redirect sitemap

我正在使用asp.net,当我手动输入一个坏网址时(在浏览器中)它给了我:

无法找到资源。 说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。

我想要一个不存在的错误网址重定向到主页。

我该怎么做?我正在使用站点地图。

4 个答案:

答案 0 :(得分:6)

如果您无意让用户知道,则会重定向他们。然后,您可以打开自定义错误并执行以下操作:

<configuration>
  <system.web>
    <customErrors defaultRedirect="default.aspx" mode="On">
      <error statusCode="404" redirect="default.aspx"/>
    </customErrors>
  </system.web>
</configuration>

答案 1 :(得分:1)

将此部分添加到web.config

<customErrors mode="On" defaultRedirect="{yourDefaultErrorPage}">
    <error statusCode="404" redirect="{yourhomePage}"/>
</customErrors>

customErrors Element on MSDN

答案 2 :(得分:1)

正如其他人已经回答的那样,web.config是一种可行的方式。

另一个是来自您应用程序中的catch unhandled exceptions。这使您可以更好地控制重定向。

protected void Application_Error(object sender, EventArgs e)
{
    HttpException httpException = Server.GetLastError() as HttpException;
    if (httpException.GetHttpCode() == 404)
       Response.Redirect("/MainPage.aspx");
}

请记住,如果您创建自己的404页面,则必须:

  • 手动将404代码添加到响应中。
  • 将回复正文保留在512字节以上,否则浏览器将显示其默认错误消息。

答案 3 :(得分:1)

如果可以,请尝试将您的404页永久重定向到类似的网址。

因此,不要回复404,而是对您网站上的类似网址做出301响应。最好的SEO智慧

相关问题