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 证书——我想知道这是否是 request.ssl 的原因?返回假?什么是好的解决方法?我应该检查一下 request.protocol == "https://" 吗?

4

1 回答 1

4

不要在控制器中执行此操作。

相反,在config/environments/production.rb(以及您想要使用 SSL 的任何其他环境)中,执行以下操作:

config.force_ssl = true

阅读更多关于配置 Rails 3 以使用 HTTPS的信息。

于 2012-10-18T02:24:35.163 回答