Лучший способ получить всех моих пользователей на одном домене? - PullRequest
0 голосов
/ 04 октября 2009

У меня есть около 10 доменов, указывающих на мое приложение Heroku (потребовалось вечно, чтобы выбрать имя для сайта - не спрашивайте), и все это я давал разным людям в разное время.

Теперь, когда я выбрал доменное имя (назовите его «example.com»), я хочу, чтобы все существующие домены работали, но перенаправили на example.com. Какой лучший способ сделать это?

Вот мой подход (в application_controller.rb):

before_filter :ensure_domain

def ensure_domain
  canonical_domain = 'example.com'

  if request.env['HTTP_HOST'] != domain && ENV["RAILS_ENV"] == 'production'
    redirect_to request.protocol + canonical_domain + request.env["REQUEST_URI"]
  end
end

Это правильный подход?

Ответы [ 2 ]

3 голосов
/ 04 октября 2009

На самом деле я бы сделал это в Apache:

<VirtualHost ...>
  ServerName example.com
  .... # your real server config
</VirtualHost>

<VirtualHost ...>
  ServerName olddomain.com
  ServerAlias other-olddomain.com yetanotherone.com
  Redirect permanent / http://example.com/
</VirtualHost>

Обратите внимание, что косая черта в URL-адресе перенаправления важна. нет, он перенаправит все, что приходит к http://olddomain.com/foo/bar?foo=bar на http://example.com/foo/bar?foo=bar

0 голосов
/ 04 октября 2009

Я думаю, что хранить логику в моем Rails-приложении проще в управлении (плюс я не знаю, как настроить Apache). Я закончил с этим:

before_filter :ensure_domain

def ensure_domain
  canonical_domain = 'example.com'

  if request.host != canonical_domain && ENV["RAILS_ENV"] == 'production'
    redirect_to request.protocol + canonical_domain + request.request_uri
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...