【问题标题】:http instead of https for heroku siteshttp 代替 https 用于 heroku 网站
【发布时间】:2014-10-09 05:25:04
【问题描述】:

我已经构建了一个 rails 应用程序,并已通过 heroku 将其推送到生产环境。默认地址以 https 开头,而不是 http。我可以强制它以http开头吗?在我的 production.rb 文件中,我有以下内容:

config.force_ssl = false

我也试过注释掉那行,但还是不行。我还有什么需要做的吗?

【问题讨论】:

  • 你有 SSL 证书吗?
  • 没有了。我曾经有它,但我最近摆脱了证书并删除了ssl
  • 看我的回答,如果你需要这样做,拥有一个非常重要。
  • *.herokuapp.com 有 SSL 证书,所以只要您不使用自定义域名(仅默认 Heroku URL,例如 yourapp.herokuapp.com),您的网站应该可以通过 HTTP 或 HTTPS 正常工作。您尝试进行的重定向与 Ruby-on-rails 应用程序更相关 - 它必须检测 HTTP/HTTPS 连接并重定向到所需的协议。请记住,heroku 代理向您的 Dyno 请求 - 所以它始终是 HTTP,您必须从 HTTP 标头中找到原始协议 - 更多信息在这里:devcenter.heroku.com/articles/http-routing

标签: ruby-on-rails heroku


【解决方案1】:

您需要执行以下基本步骤:

  • 购买 SSL 证书
  • 提供 ssl:endpoint 插件heroku addons:add ssl:endpoint
  • 上传您的证书
  • 更新您的 DNS
  • 使用config.force_ssl = true 配置您的 Rails 应用程序

更多信息请见this official guidethis another

【讨论】:

    【解决方案2】:

    当我做对了,你想强制使用 http 而不是 https。我不知道你为什么想要这个,我不建议这样做,但你可以使用this answer中的代码示例:

    class ApplicationController < ActionController::Base
      before_filter do
        if request.ssl? && Rails.env.production?
          redirect_to :protocol => 'http://', :status => :moved_permanently
        end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      • 2015-07-18
      • 2020-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多