对于登录页面,Devise会自动插入https。 (这是预期的行为) 如何删除重定向网址的https中的“s”?
此外,我尝试通过nginx将http流量从http重定向到https,但是nginx日志不会显示任何传入的https流量。
183.82.107.33 - - [02/Jan/2017:07:41:42 +0000] "GET /users/sign_in HTTP/1.1" 302 115 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"
183.82.107.33 - - [02/Jan/2017:07:41:42 +0000] "\x16\x03\x01\x00\xCA\x01\x00\x00\xC6\x03\x03,(\x13\xA2*\x04\xF9\x96\x8F\xE9&\xA4\xDAV\xB4pc\xBE\x9C\x88cn\xDF`[m\xED\xD8\xBB\xEC\xDA\xE9\x00\x00\x22\xC0+\xC0/\xC0,\xC00\xCC\xA9\xCC\xA8\xCC\x14\xCC\x13\xC0\x09\xC0\x13\xC0" 400 181 "-" "-"
183.82.107.33 - - [02/Jan/2017:07:42:00 +0000] "GET / HTTP/1.1" 200 1325 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36"
并且Rails日志显示:
I, [2017-01-02T10:24:28.885989 #5856] INFO -- : Started GET "/hotels" for 127.0.0.1 at 2017-01-02 10:24:28 +0000
I, [2017-01-02T10:24:28.953156 #5856] INFO -- : Processing by HotelsController#index as HTML
I, [2017-01-02T10:24:28.962421 #5856] INFO -- : Completed 401 Unauthorized in 9ms
我添加了Rails.application.routes.default_url_options[:protocol] = "http"
到config/environments/production.rb
,但没有改变任何东西。
所以,我的config/environments/production.rb
看起来像是:
Rails.application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.js_compressor = :uglifier
config.assets.compile = true
config.assets.digest = true
config.force_ssl = false
config.log_level = :info
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
config.active_record.dump_schema_after_migration = false
end
Rails.application.routes.default_url_options[:protocol] = "http"
,我的config/initializers/devise.rb
看起来像是:
Devise.setup do |config|
config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'
require 'devise/orm/active_record'
config.case_insensitive_keys = [ :email ]
config.strip_whitespace_keys = [ :email ]
config.skip_session_storage = [:http_auth]
config.stretches = Rails.env.test? ? 1 : 10
config.reconfirmable = true
config.expire_all_remember_me_on_sign_out = true
config.password_length = 8..128
config.reset_password_within = 6.hours
config.scoped_views = true
config.sign_out_via = :delete
end
这会起作用的方式?