Force SSL for specific routes in Rails 3.1

后端 未结 3 1042
[愿得一人]
[愿得一人] 2021-02-20 04:32

I need to force SSL on all routes in my application except for landing#index.

In config/application.rb, I have:



        
相关标签:
3条回答
  • 2021-02-20 05:01

    You can do it this way:

    controller

    force_ssl :except => :index
    

    view

    supposing your index path name is index_landing_path

    <%= link_to 'Landing', index_landing_path, :protocol => 'http' %>
    
    0 讨论(0)
  • 2021-02-20 05:02

    Rails 4 with ActiveAdmin 1.0b, I modified config/initializers/active_admin.rb:

    config.before_filter :force_ssl_redirect, if: :https_enabled?
    

    force_ssl_redirect is defined in actionpack/lib/action_controller/metal/force_ssl.rb and is what Rails' force_ssl class method calls.

    https_enabled? defined in my application_controller.rb:

    def https_enabled?
      ENV['HTTPS_ENABLED'] == 'true'
    end
    
    0 讨论(0)
  • 2021-02-20 05:18

    I asked a similar question on stackoverflow here and was told to use https://github.com/tobmatth/rack-ssl-enforcer. I haven't tried it out yet, but based on the readme, it appears to solve your problem of conditionally enforcing ssl on certain routes.

    0 讨论(0)
提交回复
热议问题