У меня есть два доменных имени, назначенных моему приложению heroku.Я хочу убедиться, что все запросы к одному домену перенаправлены навсегда на другой домен.
Как я могу сделать это на Heroku?
Если вы используете Rails 3, вы можете воспользоваться новой системой маршрутизации .
constraints :host => "invalid.domain.com" do match "/*path", :to => proc { |env| req = ActionDispatch::Request.new(env) [301, { "Location" => "http://valid.domain.com#{req.fullpath}" }, ["You are being redirected."]] } end
Это всего лишь пример. Не стесняйтесь реорганизовать лямбду в специальный класс.
class ApplicationController before_filter :ensure_domain TheDomain = 'myapp.mydomain.com' def ensure_domain if request.env['HTTP_HOST'] != TheDomain redirect_to TheDomain end end end
Вы можете сделать это через before_filter в контроллере приложения - Heroku приводит пример в нижней части их документов по адресу http://docs.heroku.com/custom-domains или сопоставленный маршрут в вашем приложении rout.rb, используя метод перенаправления.*
Джон.