Ruby on Rails:将已弃用的 URL 路由到应用程序的根目录

Ruby on Rails: Route a deprecated URL to application's root

当我需要指出一个已弃用的 URL 仍然存在于我无法控制的其他网站上时,我将如何在 config/routes.rb 中编写 Rails 路由('/something/article.jsp?id=1787') 到我的应用程序的根目录?

如何纠正以下(错误的)尝试?

get '/something/article.jsp?id=1787' => 'root#index'

您可以指定一个constraint:

get '/something/article', to: redirect('/'),
      :constraints => lambda { |request| request.params[:id] == '1787' }

这会创建一个 301 "Moved Permanently" 重定向。

如果您不想进行重定向,而是希望 URL 简单地触发 root#index 操作,您可以将 to: redirect('/') 行替换为 to: 'root#index'.但是,这种方法将在地址栏中保留旧的 URL。

  • 有关重定向的更多信息 here
  • 有关约束的更多信息 here

希望对您有所帮助!