Ruby on rails Rails是否自动跟踪页面名称更改并创建301重定向?

Ruby on rails Rails是否自动跟踪页面名称更改并创建301重定向?,ruby-on-rails,seo,http-status-code-301,Ruby On Rails,Seo,Http Status Code 301,有没有一颗宝石能做到这一点,或者它是均匀烘焙的?我现在的理解是,每当我更改页面路径时(可能是为了SEO),我都需要创建一个新的301重定向。这不是应该自动处理吗 如果是,它是如何自动处理的,我如何利用它 谢谢 这是一个相当复杂的问题,在很大程度上取决于您的路线目前的外观。答案很简单:不,这不是Rails自动处理的 处理这种重定向的最简单方法是在routes.rb文件中,从旧路径重定向到新路径。大概是这样的: match '/products/:id', redirect("/new_produc

有没有一颗宝石能做到这一点,或者它是均匀烘焙的?我现在的理解是,每当我更改页面路径时(可能是为了SEO),我都需要创建一个新的301重定向。这不是应该自动处理吗

如果是,它是如何自动处理的,我如何利用它


谢谢

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

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

match '/products/:id', redirect("/new_products/%{id}")
您可以在网站上了解有关这种重定向的更多信息

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

在本例中,您可能希望将路由字段从当前的任何位置提取到自己的slug列中。为此,我推荐一个非常优秀的gem:它允许您自动生成slug,并允许您使用对象的旧slug执行查找

然后,如果您觉得有必要,可以通过对象的ID、slug或任何旧slug来查找对象