可能重复:
Why am I getting infinite redirect loop with force_ssl in my Rails app?
我的应用程序控制器中有这个:
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?返回false?什么是好的解决方法?我应该检查一下request.protocol ==“https://”?
答案 0 :(得分:4)
请勿在控制器中执行此操作。
相反,在config/environments/production.rb
(以及您想要使用SSL的其他环境中),请执行以下操作:
config.force_ssl = true
阅读configuring Rails 3 to use HTTPS上的更多信息。