перенаправление с http://example.com на https://example.mysite.com
Этот вопрос задавался в различных перестановках, но я не нашел правильную комбинацию, которая отвечает на мой конкретный вопрос.
КонфигурацияRails 3.1 (что позволяет мне использоватьforce_ssl
в моемApplicationController
)Размещено на Heroku Cedar (поэтому я не могу коснуться промежуточного программного обеспечения)Мои SSL-сертификаты зарегистрированы дляsecure.example.com
Я уже добавилforce_ssl
в мой ApplicationController, вот так:
# file: controllers/application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
force_ssl
end
ПроблемаВ настоящее время, если пользователь переходит кhttp://example.com
, force_ssl переключается на SSL, но так как это НЕsecure.example.com
, он представляет предупреждение о неподтвержденном сертификате безопасности, поскольку он использует сертификат Heroku по умолчанию.
(Я подтвердил, что переход кhttp://secure.example.com
правильно перенаправляет наhttps://secure.example.com
и использует надлежащий сертификат безопасности. Это хорошо.)
Как я заставляюhttp://www.example.com/anything
а такжеhttp://example.com/anything
перенаправить наhttp://secure.example.com/anything
? (Я предполагаю, что force_ssl будет обрабатывать переход с http на https.) Поскольку я не могу коснуться промежуточного программного обеспечения (напомним, что это хостинг Heroku), япредполагать Я могу сделать что-то вроде:
# file: controllers/application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
force_ssl
before_filter :force_secure_subdomain
private
def force_secure_subdomain
redirect_to(something...) unless request.ssl?
end
end
... но я недостаточно ворчал redirect_to и объект запроса, чтобы знать, для чего писатьsomething...
, (Я хочу быть уверен, что он обрабатывает параметры запроса и т. Д.)