出于搜索引擎优化的目的,我现在必须重定向一堆网址(类似于200),也许更晚,也许更少。 我希望能够轻松访问它。所以我想到了一个包含我需要重定向的所有网址的专用文件。 像
这样的东西# config/seo_redirection_table.yml
- old_path: '/old/path/1'
new_path: '/new_path_1'
status: 301
- old_path: '/old/path/2'
new_path: '/new_path_2'
status: 301
然后在我的routes.rb
中将此文件映射到最顶层。
这是一个好习惯吗?你怎么看 ?我如何在routes.rb
中处理这个逻辑。
答案 0 :(得分:0)
你可以在routes.rb中这样做:
get '/old/path/:id', to: redirect('/new_path_%{id}', status: 301)
因此,您不需要创建大量静态路由,只需编写一次测试即可为静态路由编写测试。
答案 1 :(得分:0)
如果您希望在代码库中使用重定向规则,那么您的方法就可以了。由于规则是静态的,您可以在创建路径时加载它们:
# config/routes.rb
require 'yaml'
Rails.application.routes.draw do
redirects = YAML.load_file('config/redirects.yml')
redirects.each do |rule|
get rule["old_path"], to: redirect(rule["new_path"], status: rule["status"])
end
# other routes
end
您也可以考虑使用图书馆: