【问题标题】:trying to force a redirect to https from application controller [duplicate]试图从应用程序控制器强制重定向到 https [重复]
【发布时间】:2012-10-08 07:49:21
【问题描述】:

可能重复:
Why am I getting infinite redirect loop with force_ssl in my Rails app?

我的应用程序控制器中有这个:

before_filter :redirect_to_ssl!

def redirect_to_ssl!
  redirect_to "https://" + request.host + request.fullpath if !request.ssl? && Rails.env.production?
end

但是,当我使用 https:// 查看我的网站(在生产模式下)时,它会进入重定向循环...看起来 request.ssl?即使我使用的是 https 协议,也返回 false ..... 现在,当我查看我的网站时,浏览器确实警告我无法验证我的 ssl 证书——我想知道这是否是 request.ssl 的原因?返回假?什么是好的解决方法?我应该检查一下 request.protocol == "https://" 吗?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    不要在控制器中这样做。

    相反,在config/environments/production.rb(以及您想使用 SSL 的任何其他环境)中,执行以下操作:

    config.force_ssl = true
    

    阅读更多关于configuring Rails 3 to use HTTPS的信息。

    【讨论】:

    • 不幸的是,这也会导致重定向循环......
    • 您是否从您的ApplicationController 中删除了重定向?如果您有任何其他重定向,介意发布代码吗?
    • 是的,我从应用程序控制器中删除了它...没有其他重定向..问题必须在于 SSL 证书无法验证..
    • 这对我不起作用。
    猜你喜欢
    • 2020-07-23
    • 1970-01-01
    • 2018-08-21
    • 2016-11-14
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多