这个问题与这个SO问题和答案(rails-3-ssl-deprecation)有关 ,它建议使用routes.rb和路由来处理rails 3中的ssl:
resources :sessions, :constraints => { :protocol => "https" }
# Redirect /foos and anything starting with /foos/ to https.
match "foos(/*path)", :to => redirect { |_, request| "https://" + request.host_with_port + request.fullpath }
Run Code Online (Sandbox Code Playgroud)
我的问题是链接使用相对路径(我认为这是正确的术语),一旦我在https页面上,所有其他链接到网站上的其他页面然后使用https.
1)对于不需要https的页面,回到http的最佳方法是什么?我是否必须为所有这些设置重定向(我希望注意)或者有更好的方法.重定向会是这样的:
match "foos(/*path)", :to => redirect { |_, request| "http://" + request.host_with_port + request.fullpath }
Run Code Online (Sandbox Code Playgroud)
2)如果需要重定向回http,我该如何处理我希望所有方法都是http的情况除外?即foos(/*path)适用于所有foos方法.但是说我想要foos/upload_foos来使用ssl.我知道如何要求它
scope :constraints => { :protocol => "https" } do
match 'upload_foos' => 'foos#upload_foos', :via => :post, :as => :upload_foos
end
Run Code Online (Sandbox Code Playgroud)
但是,如果我将http重定向放入foos路径,那么https upload_foos会发生什么?
我想要在设计上为用户资源要求ssl身份验证.我期待它像在rails中一样简单,例如:
devise_for :users, :constraints => { :protocol => "https" }
Run Code Online (Sandbox Code Playgroud)
此外,我找不到关于devise的github的任何文档,尽管我在google组中发现了一些指向它的死链接.
有没有人提示如何让它轻松工作?考虑到插件的流行,我觉得我很简单