Rails 3:确保用户使用https

don*_*ald 7 ssl ruby-on-rails heroku ssl-certificate ruby-on-rails-3

我有一个在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
Run Code Online (Sandbox Code Playgroud)

但是我收到一个Error 310 (net::ERR_TOO_MANY_REDIRECTS)错误.

use*_*960 7

你可能需要检查你是否已经在使用ssl ...这对我们有用.

before_filter :redirect_to_ssl
def redirect_to_ssl
    redirect_to :protocol => "https://" unless (request.ssl?)
end
Run Code Online (Sandbox Code Playgroud)


Yos*_*Kim 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
Run Code Online (Sandbox Code Playgroud)

这在我的Rails应用程序上很好用,而无需编写额外的代码.


Sim*_*tti 5

这是我发给类似问题的答案.

否则,您可以使用Rack :: SSL.