WedX - журнал о программировании и компьютерных науках

перенаправление с https://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

Проблема

В настоящее время, если пользователь переходит к https://example.com, force_ssl переключается на SSL, но, поскольку это НЕ secure.example.com, выдается предупреждение о непроверенном сертификате безопасности, поскольку он использует сертификат Heroku по умолчанию.

(Я убедился, что переход к https://secure.example.com правильно перенаправляет на https://secure.example.com и использует надлежащий сертификат безопасности. Это хорошо.)

Вопрос

Как заставить https://www.example.com/anything и https://example.com/anything перенаправлять на https://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.... (Я хочу быть уверен, что он обрабатывает параметры запроса и т. д.)


Ответы:


1

вы можете перенаправить на другое имя хоста, выполнив следующие действия:

# file: controllers/application_controller.rb
class ApplicationController < ActionController::Base
  force_ssl :host => "secure.example.com"
end

см.: исходный код rails force_ssl для получения дополнительной информации. Информация

28.02.2012
  • вы также можете указать аргумент :protocol =› 'https'. Я видел это предложение по связанным вопросам. 13.01.2013

  • 2

    Вы должны взглянуть на rack-rewrite - это, по сути, переписывание Apache, но в форме Ruby, и может использоваться на Heroku.

    Это позволит вам создавать всевозможные правила уровня Rack, а также какие перенаправления и т. д. должны происходить и когда.

    27.01.2012
    Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]