Укажите действие контроллера Rails на основе домена

У меня есть одно приложение, которое поддерживает два домена, 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, продолжая использовать существующий контроллер и действия.

Как мне указать маршрут в route.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

Ни то, ни другое не работает.


person Dan Crews    schedule 07.03.2015    source источник


Ответы (1)


Оказывается, ответ — перенаправление в пределах ограничения домена. Довольно просто, как только я это увидел.

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