我正在尝试强制我的控制器生成的所有网址都是“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
答案 0 :(得分:0)
我正在使用的域名在不同的应用程序之间共享,因此请求由apache服务器接收并转发到应用服务器,因此以这种方式强制执行ssl不起作用,因为应用程序将请求视为“本地”并始终通过http,所以它进入重定向循环。我将在服务器级别强制执行https。