试图强制ssl,得到“这个网页有一个重定向循环”

时间:2012-10-20 00:28:04

标签: ruby-on-rails ruby security https

我正在尝试强制我的控制器生成的所有网址都是“https”,否则会重定向到https。我尝试了this blog中解释的方法和Olly here建议的方法 如果我尝试访问我的应用程序,我收到此错误:

  

此网页有重定向循环

     

https://'example.com'上的网页导致了太多的重定向。空地   您对本网站的cookie或允许第三方cookie可以解决问题。   如果没有,它可能是服务器配置问题,而不是问题   你的电脑。

清除cookie无济于事。它为什么会进入循环?我确保在request.ssl为false的情况下运行代码。我正在使用Rails 2.3.10。 所以这就是我尝试过的,在我添加的应用程序控制器中:

     url_for unless (Rails.env.test? || Rails.env.development?) 
     def default_url_options(options) 
    { :only_path => false, :protocol => 'https' } unless (Rails.env.test? ||  Rails.env.development?) 
    end

我也试过

def redirect_to_https
  redirect_to :protocol => "https://" unless (request.ssl? || Rails.env.test? || Rails.env.development? || local_request?)
end

1 个答案:

答案 0 :(得分:0)

我正在使用的域名在不同的应用程序之间共享,因此请求由apache服务器接收并转发到应用服务器,因此以这种方式强制执行ssl不起作用,因为应用程序将请求视为“本地”并始终通过http,所以它进入重定向循环。我将在服务器级别强制执行https。