我目前正在試圖找出一種方法來強制http對於某些路由(更快,不需要安全性)並強制https更敏感的頁面。我看到了這個答案:Rails 3 SSL Deprecation,但它似乎沒有工作。Rails 3:在某些地方強制使用HTTP,並在其他地方強制使用HTTPS?
我說在我的根URL一個範圍:
scope :constraints => { :protocol => 'http' } do
root :to => 'site#index'
end
但它只是把錯誤No route matches [GET] "/"
當我試圖去爲localhost:3000。
有沒有乾淨的方式來強制HTTP在一些地方,強迫他人HTTPS(我可以在我的控制器使用force_ssl
,但有一個force_http
?)在455元範圍看起來乾淨,但它不工作爲了我。我做錯了嗎?
這樣的方法怎麼樣?
CONTROLLERS_THAT_REQUIRE_SSL = ['check_out']
def ensure_proper_protocol
unless Rails.env.development? || Rails.env.test?
if request.protocol["https"] && !CONTROLLERS_THAT_REQUIRE_SSL.include?(params[:controller])
redirect_to "http://" + request.host + request.path
end
end
end
如何在特定的控制器方法中實現它? – xirukitepe