【问题标题】:Does Rails automatically keep track of page name changes and create 301 redirects?Rails 是否会自动跟踪页面名称更改并创建 301 重定向?
【发布时间】:2012-11-02 07:40:29
【问题描述】:

有没有一种宝石可以做到这一点,或者它甚至被烘烤过?我现在对事情的理解是,每当我更改页面的路径(也许我为 SEO 这样做)时,我都需要创建一个新的 301 重定向。这不应该自动处理吗?

如果是这样,它是如何自动处理的,我该如何使用它?

谢谢!!!

【问题讨论】:

    标签: ruby-on-rails seo http-status-code-301


    【解决方案1】:

    这是一个相当复杂的问题,很大程度上取决于您的路线现在的样子。简单的答案是:不,这不是 Rails 自动处理的。

    处理这种重定向的最简单方法是在routes.rb 文件中,从旧路径重定向到新路径。像这样的:

    match '/products/:id', redirect("/new_products/%{id}")
    

    您可以在Rails routing guide 了解有关这种重定向的更多信息。

    如果您只更改产品的一个实例,那么显然这没有多大意义——您不能对每个更改的对象都这样做。在这种情况下,我们假设您没有使用标准的基于 ID 的路由;如果你是那么这不会是一个问题。 (由于 ID 不会更改,因此您的路由似乎是基于确实更改的字段 - 例如名称或日期等。)

    在这种情况下,您可能希望将路由字段从当前的任何内容中提取出来,并将其提取到它自己的 slug 列中。为此,我推荐非常出色的 friendly_id gem:它允许您自动生成 slug,它的 history module 允许您使用对象的旧 slug 执行查找。

    然后,如果您认为有必要,您可以通过它的 ID、它的 slug 或它的任何旧 slug 来查找一个对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 2014-01-23
      • 1970-01-01
      • 2015-04-26
      • 2016-10-27
      • 2010-10-15
      相关资源
      最近更新 更多