指定基于域的Rails控制器操作

时间:2015-03-07 01:43:59

标签: ruby-on-rails routing multiple-domains

我有一个支持两个域http://domain1.comhttp://domain2.com的应用程序。模型,控制器和视图在域之间共享。

过去http://domain1.com/user_type_2/faqshttp://domain2.com/user_type_2/faqs使用相同的控制器操作单独提供。但是,出于SEO原因,我想完全删除与domain1关联的视图,并将所有用户类型2常见问题请求(从任一域)路由到http://domain2.com/user_type_2/faqs - 继续使用现有的控制器和操作。

如何在routes.rb中指定将所有请求从http://domain1.com/user_type_2/faqs重定向到http://domain2.com/user_type_2/faqs的路由?

我试过

match 'http://domain1.com/user_type_2/faqs', :to => redirect('http://domain2.com/user_type_2/faqs')

constraints(:host => /domain1.com/) do match "/user_type_2/faqs" => redirect {|params, req| "//domain2.com/#{params[:path]}"} end

似乎都没有效果。

1 个答案:

答案 0 :(得分:0)

事实证明,答案是域约束中的重定向。我看到它后非常直白。

constraints domain: 'domain1.com' do
  match 'user_type_2/faqs', :to => redirect('http://domain2.com/user_type_2/faqs')
end