【发布时间】:2011-04-28 23:07:08
【问题描述】:
这个问题与这个SO question and answer (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 }
我的问题是链接使用相对路径(我认为这是正确的术语),一旦我在 https 页面上,所有其他指向网站上其他页面的链接都使用 https。
1) 对于不需要 https 的页面,返回 http 的最佳方式是什么?我是否必须为所有这些设置重定向(我希望注意)或者有更好的方法。重定向会是这样吗:
match "foos(/*path)", :to => redirect { |_, request| "http://" + request.host_with_port + request.fullpath }
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
但是如果我将 http 重定向到 foos 路径,https upload_foos 会发生什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3