0

我在服务器中使用bartt-ssl_requirementssl 实现Rails 3.2.13ngnix

gem 'bartt-ssl_requirement', '~>1.4.0', :require => 'ssl_requirement'

有些页面是https,有些页面只是http。

所以我写在application_controller.rb

include SslRequirement

ssl_required :new,createsessions_controller.rb

ssl_required :showsettings_controller.rb

当我从http页面切换到https页面时,没有问题。

但是当我从 https 切换到任何 http 时,在Mozilla.

我还尝试对 http 页面使用 force-non-ssl。但没有变化。

谁能帮助如何在 Rails 或 ngnix 服务器设置中修复它?

注意:此问题仅在 Mozilla 中出现。但在 Chrome 和 Internet Explorer 中运行良好

4

1 回答 1

0

我使用以下代码从 http 重定向到 https,反之亦然

def ensure_proper_protocol
     if request.ssl? && !ssl_allowed_action?

       redirect_to "http://" + request.host + request.fullpath
     elsif !request.ssl? && ssl_allowed_action?

       redirect_to "https://" + request.host + request.fullpath 
     end
  end

并删除了gem 'bartt-ssl_requirement'

问题仍然没有解决。

然后我干脆在里面改production.rbconfig/environments

config.action_controller.perform_caching = false

它现在工作正常。

于 2014-01-09T14:18:15.677 回答