【发布时间】: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