rails 3: перенаправление https, но только для одного конкретного доменного имени (или нескольких) - PullRequest
2 голосов
/ 12 июля 2011

Мое приложение имеет пользовательские и общедоступные страницы, доступ к которым осуществляется через разные субдомены user.example.com и public.example.com

У меня есть ssl-сертификат для user.example.com, и все работает нормально, когда пользователь заходит по https.

И я знаю, как перенаправить на https для ЛЮБОГО домена, используемого моим приложением, но не для ОДНОГО конкретного домена.

Однако, если кто-то заходит на http://user.example.com, я бы хотел перенаправить на https://user.example.com, не выполняя специального перенаправления для других поддоменов (или доменов), на которые он может войти.

Есть ли в rails способ перенаправить на https все запросы, поступающие на один конкретный поддомен?

1 Ответ

1 голос
/ 13 июля 2011

Лучшее место для этого - конфигурация вашего веб-сервера (например, Apache, nginx и т. Д.).Если у вас нет доступа к этому, то напишите before_filter в ApplicationController, который сравнивает с request.host и request.ssl?, например:

def redirect_user_subdomain_to_https
  if 'user.example.com' == request.host && !request.ssl?
    redirect_to request.url.gsub(/^http/, 'https')
    return false
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...