我使用的是名为Radiant(版本0.9.1),Rails 2.3.18和Ruby 1.8.7的CMS。我必须使用这个宝石中的路线使用'https'。我需要这样做,我不会编辑宝石源文件本身,而是覆盖扩展中的宝石路线。我该怎么做?
答案 0 :(得分:0)
服务器的配置实际上取决于服务器堆栈的样子
要将rails应用程序配置为使用SSL,您需要强制使用ssl
在config / environments / production.rb中:
config.force_ssl = true
要在本地测试ssl,我建议尝试使用瘦作为网络服务器(也可以在development.rb中输入config.force_ssl进行测试)
添加:
gem 'thin'
到你的gemfile并启动瘦ssl服务器:
$ thin start --ssl -p 3000
对于Rails 2,这应该有效:
class ForceSSL
def initialize(app)
@app = app
end
def call(env)
if env['HTTPS'] == 'on' || env['HTTP_X_FORWARDED_PROTO'] == 'https'
@app.call(env)
else
req = Rack::Request.new(env)
[301, { "Location" => req.url.gsub(/^http:/, "https:") }, []]
end
end
end
config.middleware.use "ForceSSL"
require File.expand_path('../../lib/force_ssl.rb', __FILE__)