使用301重定向来维护SEO

时间:2015-10-14 13:57:09

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

我目前正在使用rails应用程序中的freindly_id gem来阻止URL并使它们看起来不错。因此,不是URL#root / cities / 1234,而是#root / cities / #cityname

我们希望将URL的cityname部分更改为其他内容,这似乎与更改数据库中的slug直接读取其他内容一样直接,但是,有人建议我们必须使用301重定向才能维护到目前为止我们已经获得的SEO。

任何人都可以告诉我,使用slug更改URL是否会产生影响,从我的角度来看,似乎URL基本上没有真正改变,例如基础网址仍为/ cities / 1234

2 个答案:

答案 0 :(得分:2)

我不会直接在数据库中这样做。如果你使用friendly_ids history功能,你可以在你的rails控制器中进行重定向,如果它使用过时的slug。

来自文档:

before_filter :find_post

def find_post
  @post = Post.find params[:id]

  # If an old id or a numeric id was used to find the record, then
  # the request path will not match the post_path, and we should do
  # a 301 redirect that uses the current friendly id.
  if request.path != post_path(@post)
    return redirect_to @post, :status => :moved_permanently
  end
end

答案 1 :(得分:0)

当您在页面上没有分页时,以上答案有效。 有时您必须使用分页,然后上面的答案将始终使用户返回模型的第一页。如果您必须这样做,我认为最好将您的ID与以下模型的子弹进行比较:

  if request.parameters[:id] != @post.slug
    return redirect_to post_path(@post, page: params[:page]), status: :moved_permanently
  end

通过这种方式,用户重定向到正确的分页页面