LoginSignup
14
12

More than 5 years have passed since last update.

RailsアプリでSSL+www付きに自動的にリダイレクトする設定

Posted at

Rails3でsslに自動的にリダイレクトするのは、 config/enviroments/production.rb

config.force_ssl = true

の設定を入れればOKです。

ネイキッドドメインにアクセスが来た場合に自動的にリダイレクトするには rack-canonical-host のgemを利用します。

Gemfile

gem 'rack-canonical-host'

config/initializers/canonical_host.rb

require "rack/ssl"

unless Rails.env.development?
  Rails.application.config.middleware.insert_before Rack::SSL, Rack::CanonicalHost, ENV["APP_HOST_NAME"]
end

のように設定を入れておきます。
wwwつきのURLを環境変数 ENV[APP_HOST_NAME]に入れている場合のサンプルです。

ここでのポイントは、 insert_before で SSL のmiddleware の前に入れていることです。そうすることで、

http://example.com にアクセスが有った場合に

http://www.example.com にリダイレクト

https://www.example.com にリダイレクト

となります。もしSSLへのリダイレクトが先に来ると、 https://example.com にアクセスすることになりSSLエラーが出る可能性があります。

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12