0

Radiant (バージョン 0.9.1)、Rails 2.3.18、Ruby 1.8.7 という CMS を使用しています。この gem のルートで「https」を使用する必要があります。gem のソース ファイル自体を編集するのではなく、拡張機能で gem のルートをオーバーライドするようにする必要があります。どうすればいいですか?

4

1 に答える 1

0

サーバーの構成は、サーバースタックがどのように見えるかに大きく依存します

SSL を使用するように Rails アプリケーションを構成するには、ssl を強制する必要があります。

config/environments/production.rb で:

config.force_ssl = true

sslをローカルでテストするには、Webサーバーとしてシンを試すことをお勧めします(config.force_sslをdevelopment.rbに入れてこれをテストします)

追加:

gem 'thin' 

gemfile に移動し、シン SSL サーバーを起動します。

$ thin start --ssl -p 3000

編集レール 2:

Rails 2 の場合、これは機能するはずです。

lib/force_ssl.rb

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/production.rb

config.middleware.use "ForceSSL"

config/application.rb

require File.expand_path('../../lib/force_ssl.rb', __FILE__)

ソース: Rails 2 アプリで ssl_requirement を使用して SSL を強制する

于 2015-12-15T08:55:04.177 に答える