ruby-on-rails - 从 routes.rb 重定向一批 url

标签 ruby-on-rails ruby routes seo yaml

<分区>

出于 SEO 目的,我现在必须重定向一堆 URL(大约 200 个),以后可能会更多,也可能更少。 我想轻松访问它。所以我想过有一个包含我需要重定向的所有 url 的专用文件。 有点像

# 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 中处理这个逻辑。

最佳答案

如果您希望在您的代码库中使用重定向规则,您的方法很好。由于规则是静态的,您可以在创建路由时加载它们:

# 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

您也可以考虑使用库:

关于ruby-on-rails - 从 routes.rb 重定向一批 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45732205/

相关文章:

ruby-on-rails - Rails 3 capybara 错误

ruby-on-rails - PRNG 未播种错误

ruby-on-rails - 如何在 Rails 中缓存哈希值?

ruby-on-rails-3 - Ruby on Rails 3 : HABTM with new controller action

laravel php artisan serve 命令有效,但 localhost url 在 ubuntu 18.10 中不起作用

ruby-on-rails - 如何在 heroku 上部署 Action 电缆?

ruby-on-rails - rspec、factory_girl 和 datamapper 的 Spork 和 cache_classes 问题

ruby-on-rails - 从父 Controller 继承还是使用问题?

ruby-on-rails - 为 Devise 可验证添加额外的验证

c# - ASP.NET MVC5 路由注释 MS_DirectRouteMatches