根据域指定 Rails 控制器操作
Specify Rails Controller Action Based on Domain
我有一个应用程序支持两个域,http://domain1.com
和 http://domain2.com
。模型、控制器和视图在域之间共享。
过去 http://domain1.com/user_type_2/faqs
和 http://domain2.com/user_type_2/faqs
是使用相同的控制器操作分别提供的。但是,现在,出于 SEO 的原因,我想完全删除与域 1 关联的视图,并将所有用户类型 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
似乎都不起作用。
事实证明答案是域约束内的重定向。一看就很简单
constraints domain: 'domain1.com' do
match 'user_type_2/faqs', :to => redirect('http://domain2.com/user_type_2/faqs')
end
我有一个应用程序支持两个域,http://domain1.com
和 http://domain2.com
。模型、控制器和视图在域之间共享。
过去 http://domain1.com/user_type_2/faqs
和 http://domain2.com/user_type_2/faqs
是使用相同的控制器操作分别提供的。但是,现在,出于 SEO 的原因,我想完全删除与域 1 关联的视图,并将所有用户类型 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
似乎都不起作用。
事实证明答案是域约束内的重定向。一看就很简单
constraints domain: 'domain1.com' do
match 'user_type_2/faqs', :to => redirect('http://domain2.com/user_type_2/faqs')
end