Rails 3: Stellen Sie sicher, dass der Benutzer verwendet https
Ich habe eine Rails-3-Anwendung auf Heroku und ich habe auch ein SSL installiert ist und funktioniert. Allerdings ist mein Benutzer können noch Zugriff auf die Seite ohne https. Wie kann ich sicherstellen, dass alle urls werden über https aufgerufen?
Dank
Edit:
Ich habe versucht, indem diese zu application_controller.rb
before_filter :redirect_to_ssl
def redirect_to_ssl
redirect_to url_for params.merge({:protocol => 'https://'})
end
Aber ich erhalte eine Error 310 (net::ERR_TOO_MANY_REDIRECTS)
Fehler.
- mögliche Duplikate von Force SSL mit ssl_requirement in Rails-app
- Sollten Sie vor dem Aufruf umleiten. Dies ist eindeutig eine endlose redirect-wie Sie immer umleiten. im filter redirect_to_ssl sollten Sie zunächst überprüfen, ob die nicht https. Recht?. Über Inhalte haben eine saubere Lösung.
- Wenn ich versuche, ForceSSL Lösung, es stürzt die app auf Heroku.
- der Kommentar ist korrekt. Du bist IMMER umleiten zu https, auch wenn Sie bereits auf https!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine Antwort, die ich gepostet, um ein ähnliche Frage.
Ansonsten können Sie Rack::SSL.
:exclude
option. Finden Sie es Lesen der middleware-code. Es nimmt eine lambda-und wenn der lambda-Ausdruck true zurückgibt, Rack::SSL wird übersprungen.müssen Sie möglicherweise überprüfen, ob Sie bereits mit ssl... das funktioniert für uns.
Gibt es eine Konfigurations-Einstellung, die Sie verwenden können, in config/production.rb oder Anwendung.rb für Ihre Produktionsumgebung.
Dieser diente mir gut auf meiner Rails-app, ohne zusätzlichen code schreiben.