301リダイレクトと302リダイレクトの違い
301リダイレクトと302リダイレクトの違いから301リダイレクトと302リダイレクトの違いは、
301リダイレクトは、”Permanent Redirect”で「恒久的な転送」、一方、302リダイレクトは、”Temporary Redirect”で「一時的な転送」を表します。
Railsでは、デフォルトで302が返るようになっています。
変更方法
redirect_to root_path, status: :moved_permanently
redirect_to root_path, status: 301
301をデフォルトにする方法は、
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
def redirect_to_with_moved_permanently(options = {}, response_status = {})
response_status.reverse_merge!(status: :moved_permanently)
redirect_to_without_moved_permanently(options, response_status)
end
alias_method_chain :redirect_to, :moved_permanently
end
上記のようにに変更して、302を返したい時だけ、以下のコードにします。
redirect_to root_path, status: :found
redirect_to root_path, status: 302