1

重複の可能性:
Rails アプリで force_ssl を使用すると無限のリダイレクト ループが発生するのはなぜですか?

アプリケーションコントローラーにこれがあります:

before_filter :redirect_to_ssl!

def redirect_to_ssl!
  redirect_to "https://" + request.host + request.fullpath if !request.ssl? && Rails.env.production?
end

ただし、https:// を使用して (本番モードで) 自分のサイトを表示すると、リダイレクト ループに入ります... request.ssl? https プロトコルを使用しているにもかかわらず、false を返します.....今、自分のサイトを表示すると、ブラウザは、自分の ssl 証明書を検証できないという警告を表示します。false を返しますか? 良い回避策は何ですか? request.protocol == "https://" かどうかを確認する必要がありますか?

4

1 に答える 1

4

コントローラーでこれを行わないでください。

代わりに、config/environments/production.rb(および SSL を使用する他の環境で)、次のようにします。

config.force_ssl = true

HTTPS を使用するための Rails 3 の構成に関する詳細情報を参照してください。

于 2012-10-18T02:24:35.163 に答える