使用HTTP代替HTTPS访问Heroku网站

3

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

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

config.force_ssl = false

我也尝试将那行代码注释掉,但还是不起作用。我需要做些其他的事情吗?


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

0

当我理解正确时,您想强制使用http而不是https。我不知道为什么您要这样做,也不建议这样做,但您可以使用此答案中的代码示例:

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

0

您需要完成以下基本步骤:

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

有关更多信息,请参见官方指南另一个指南


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接