【问题标题】:how to redirect 404 (bad urls) to the homepage如何将 404(错误 url)重定向到主页
【发布时间】:2011-07-02 05:53:04
【问题描述】:

我正在使用 asp.net,当我手动(在浏览器中)输入错误的 url 时,它给了我:

找不到资源。 说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。

我希望将一个不存在的错误 url 重定向到主页。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      正如其他人已经回答的那样,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 字节以上,否则浏览器将显示其默认错误消息。

      【讨论】:

      • 部署在服务器上时不起作用
      • 你实际上需要使用httpException.GetHttpCode == 404
      【解决方案3】:

      将此部分添加到您的web.config

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

      customErrors Element on MSDN.

      【讨论】:

        【解决方案4】:

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

        因此,请对您网站上的类似网址做出 301 响应,而不是 404 响应。最佳 SEO 明智

        【讨论】:

        • 你能告诉我如何在 web.config 中为特定的错误 URL 添加 301 重定向
        猜你喜欢
        • 1970-01-01
        • 2014-03-20
        • 2014-12-17
        • 2015-03-25
        • 1970-01-01
        • 1970-01-01
        • 2016-06-13
        • 2016-01-06
        • 1970-01-01
        相关资源
        最近更新 更多