我在Heroku上运行了一个Rails 3应用程序,我也安装了SSL并正常运行。但是,我的用户仍然可以在没有https的情况下访问该站点。如何确保使用https访问所有网址?
由于
编辑:
我已经尝试将此添加到application_controller.rb
before_filter :redirect_to_ssl
def redirect_to_ssl
redirect_to url_for params.merge({:protocol => 'https://'})
end
但我收到Error 310 (net::ERR_TOO_MANY_REDIRECTS)
错误。
答案 0 :(得分:7)
您可能需要检查您是否已经在使用ssl ...这对我们有用。
before_filter :redirect_to_ssl
def redirect_to_ssl
redirect_to :protocol => "https://" unless (request.ssl?)
end
答案 1 :(得分:6)
您可以在config / production.rb或application.rb中为您的生产环境使用配置设置。
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
# config.force_ssl = true
这在我的Rails应用程序上很好用,而无需编写额外的代码。
答案 2 :(得分:5)
以下是我发布到similar question的答案。
否则,您可以使用Rack::SSL。