使用 301 重定向来维护 SEO
using a 301 redirect to maintain SEO
我目前正在 rails 应用程序中使用 freindly_id gem 来压缩 URL 并使它们看起来不错。所以不是 URL #root/cities/1234 他们是 #root/cities/#cityname
我们正在寻求将 URL 的城市名称部分更改为其他内容,这似乎与将数据库中的 slug 更改为简单地读取其他内容一样直接,但是,有人建议我们必须使用301 重定向以维护我们迄今为止获得的 SEO。
任何人都可以告诉我用 slug 改变 URL 是否有影响,因为从我的角度来看,URL 似乎基本上没有真正改变,例如基础 URL 仍然是 /cities/1234
我不会直接在数据库中做。如果您使用 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
当您的页面上没有分页时,以上答案有效。
有时你必须使用分页,然后上面的答案总是将用户发送回模型的第一页。如果你必须这样做,我认为最好将你的身份与你的模型进行比较,如下所示:
if request.parameters[:id] != @post.slug
return redirect_to post_path(@post, page: params[:page]), status: :moved_permanently
end
这样用户就可以重定向到正确的分页页面
我目前正在 rails 应用程序中使用 freindly_id gem 来压缩 URL 并使它们看起来不错。所以不是 URL #root/cities/1234 他们是 #root/cities/#cityname
我们正在寻求将 URL 的城市名称部分更改为其他内容,这似乎与将数据库中的 slug 更改为简单地读取其他内容一样直接,但是,有人建议我们必须使用301 重定向以维护我们迄今为止获得的 SEO。
任何人都可以告诉我用 slug 改变 URL 是否有影响,因为从我的角度来看,URL 似乎基本上没有真正改变,例如基础 URL 仍然是 /cities/1234
我不会直接在数据库中做。如果您使用 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
当您的页面上没有分页时,以上答案有效。 有时你必须使用分页,然后上面的答案总是将用户发送回模型的第一页。如果你必须这样做,我认为最好将你的身份与你的模型进行比较,如下所示:
if request.parameters[:id] != @post.slug
return redirect_to post_path(@post, page: params[:page]), status: :moved_permanently
end
这样用户就可以重定向到正确的分页页面