【问题标题】:Should I perform a 301 redirect in Global.asax or on my 404 error page我应该在 Global.asax 还是在我的 404 错误页面上执行 301 重定向
【发布时间】:2009-02-23 17:43:11
【问题描述】:

我即将用一个全新的网站替换当前的电子商务网站。以前,产品的 URL 是这样的:www.example.com/ProductDetails.aspx?ProductID=123

现在是这样的:www.example.com/en-us/product/123/The-greatest-product-in-the-world

我的问题是:301 永久重定向应该在 Global.asax 的 Application_BeginRequest 事件中完成,还是在我的 404 错误页面的 Page_Load 中完成?加载 404 时再做 301 是不是太晚了?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    您需要在浏览器(或机器人)收到 404 错误之前执行此操作。这样您就可以确保搜索引擎机器人能够正确地重新索引您的产品页面以及与之相关的任何页面排名。

    【讨论】:

    • 是否需要同时设置 Response.Status 和 Response.StatusCode,还是后者就足够了?
    • 我是否必须将用户重定向到我的新网址?
    • 我会同时设置两者,但我认为状态码就足够了。是的,重定向到新 URL,以便搜索引擎知道页面移动到了哪里。
    【解决方案2】:

    您应该将它放在 Application_BeginRequest 事件中并检查请求的 URL。

    您也可以将它放在 Application_Error 事件中并检查 404,但我认为这会占用更多资源并且会更慢。

    【讨论】:

      【解决方案3】:

      我已经在 404 页面中完成了,但这是一个 hack——您可以更改响应代码。 Application_BeginRequest 更有意义。您想要重定向,以便您的旧链接将从搜索索引中过期。

      【讨论】:

        猜你喜欢
        • 2017-01-24
        • 2012-07-25
        • 2012-04-13
        • 2012-01-01
        • 2018-08-15
        • 2016-09-17
        • 1970-01-01
        • 1970-01-01
        • 2013-06-22
        相关资源
        最近更新 更多