【问题标题】:Trying to force ssl, getting "This webpage has a redirect loop"试图强制 ssl,得到“这个网页有一个重定向循环”
【发布时间】:2012-10-10 15:39:23
【问题描述】:

我正在尝试强制我的控制器生成的所有 url 为“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

【问题讨论】:

  • 您能否与我们分享在您的应用程序中处理此问题的代码?这很可能是因为您没有测试请求是否已经是 SSL
  • 编辑了我的问题以显示代码

标签: ruby-on-rails ruby security https


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-10-22
    • 2014-06-25
    • 2014-12-27
    • 2013-12-22
    • 2013-11-06
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多