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。
希望对您有所帮助!
当我需要指出一个已弃用的 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。
希望对您有所帮助!