在Rails 4路由中强制https

时间:2013-09-23 05:09:32

标签: ruby-on-rails ruby ruby-on-rails-4

在rails 4路线中强制执行https的正确方法是什么?

例如,我希望能够做到这样的事情:

get 'success' => 'ssl#success', :ssl_only => true

但这没有任何作用。

4 个答案:

答案 0 :(得分:4)

您可以使用force_ssl强制http://site/success重定向到https://site/success。请参阅force_ssl的文档。

class SSLController < ApplicationController
  force_ssl only: :success # see docs for more options
end

Related question。)

答案 1 :(得分:0)

如果你想要https://.../ssl/success

 scope constraints: { protocol: 'https' } do
  get 'success', to: 'ssl#success', as: 'success' 
 end

get 'success', to: 'ssl#success', as: 'success', constraints: { protocol: 'https' }

答案 2 :(得分:0)

我最终得到了这个:

get 'success', to: 'ssl#success', constraints: {protocol: /https/}

答案 3 :(得分:0)

在我的情况下,它通过在application_controller.rb中添加“force_ssl”来实现。