Rails 3:确保用户使用https

时间:2011-02-21 11:02:58

标签: ruby-on-rails ruby-on-rails-3 ssl heroku ssl-certificate

我在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)错误。

3 个答案:

答案 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