環境設定
Rails 6.0.0
ruby 2.6.5
リダイレクトさせるために必要なコードとは?
お名前.comでせっかく独自ドメインを買ったのに、
hogehoge.heroku.comでアクセスできてしまう。。。
これを解消するのがリダイレクト処理。
gemで、rack-rewriteというのもあるようですが、
コードを足すだけでも実現可能とのことでgemは使わず実装してみました。
application_controller.rb
class ApplicationController < ActionController::Base
#herokuapp.comから独自ドメインへリダイレクト
before_action :ensure_domain
FQDN = 'www.hogehoge.net'
# redirect correct server from herokuapp domain for SEO
def ensure_domain
return unless /\.herokuapp.com/ =~ request.host
# 主にlocalテスト用の対策80と443以外でアクセスされた場合ポート番号をURLに含める
port = ":#{request.port}" unless [80, 443].include?(request.port)
redirect_to "#{request.protocol}#{FQDN}#{port}#{request.path}", status: :moved_permanently
end
end
参考記事ではbefore_filter
となっていましたが、Rails4以降は使えなくなっているので、before_action
で書きます。
FQDN
は取得した独自ドメインを定義してあげます。
他はコピペでも大丈夫です(僕はこれでうまくリダイレクトしてくれています)
参考記事
【Rails】herokuapp.comから独自ドメインに301リダイレクトを行う方法
今回はこれで以上です。