【Rails】「rack-rewrite」gemでドメインごと301リダイレクトさせる
2017/10/21
2025/7/31
こんにちは、okutaniです(@okutani_t)。本記事ではRuby on Railsでリダイレクト処理が書ける「rack-rewrite」gemの使い方について解説しています。
rack-rewriteの公式GitHubリポジトリは以下です。
それでは、rack-rewriteの導入方法から見ていきましょう。
rack-rewriteの導入
Gemfileに以下を追記します。
gem 'rack-rewrite'
bundlerでインストール。今回は--path
オプションをつけてプロジェクト直下に導入。
$ bundle install --path vendor/bundle
これでrack-rewriteの導入完了です。
rack-rewriteの設定
リダイレクトの設定をおこなっていきます。
「config/initializers/rack_rewrite.rb」を以下の内容で作成。
if ENV['RACK_ENV'] == 'production'
MyAppName::Application.config.middleware.insert_before(Rack::Runtime, Rack::Rewrite) do
r301 %r{.*}, 'https://www.example.com$&', :if => Proc.new {|rack_env|
rack_env['SERVER_NAME'] == 'example.herokuapp.com'
}
end
end
上記の「MyAppName」「https://www.example.com」「example.herokuapp.com」は適宜プロジェクトに合わせて書き換えてください。
これで、production環境で「https://example.herokuapp.com」にアクセスすると「https://www.example.com」に301リダイレクトされます。
かんたんではありましたが、「rack-rewrite」gemを使って301リダイレクトをおこなう方法について解説しました。
Railsユーザーの参考になれば幸いです。