SSL https yönlendirir http yönlendirme raylar 3
Bu soruyu rayları ssl 3 yolları kullanarak işlemek için önerilen bu nereye SO question and answer (rails-3-ssl-deprecation ) ile ilgilidir.rb ve yollar gibi:
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 }
Benim sorunum bağlantıları göreli yollar kullanmasıdır(doğru kelime bu sanırım) ve sitede https sayfası diğer sayfalara bağlantılar diğer tüm olduğumda o zaman https kullan.
1) Ne http geri https gerekli olmadığı için sayfaları almak için en iyi yolu? (Not umarım) ya da daha iyi bir yolu vardır tüm kurulum yönlendirmeleri gerekiyor. Yönlendirmeleri bu şekilde olacaktır:
match "foos(/*path)", :to => redirect { |_, request| "http://" request.host_with_port request.fullpath }
2) http yönlendirmeleri için geri gerekiyorsa, nasıl bir dava kolu nereye ben tüm yöntemleri dışında http olmasını istiyorum? yani foos(/*path) tüm foos yöntem olacaktır. Ama demek/upload_foos foos ssl kullanmak istedim. Bunu gerektirecek kadar önemli olduğunu biliyorum
scope :constraints => { :protocol => "https" } do
match 'upload_foos' => 'foos#upload_foos', :via => :post, :as => :upload_foos
end
ama eğer http koyarsam https upload_foos ne foos yola yönlendirmek?
CEVAP
Eğer tüm bağlantılar, http ve https arasında geçiş yapabilmek istiyorsanız, _path
yardımcı durdurunuz ve _url
yardımcıları geçin.
Bundan sonra, protokol parametresi zorunlu bir kapsam kullanarak ve protokol kısıtlama URL otomatik olarak geçiş yapar.
yolları.rbscope :protocol => 'https://', :constraints => { :protocol => 'https://' } do
resources :sessions
end
resources :gizmos
Ve görüşlerinizi artık:
<%= sessions_url # => https://..../sessions %>
<%= gizmos_url # => http://..../gizmos %>
Edit
Bu geri https olduğunda http URL ' leri düzeltme yok. url_for
geçersiz kılmak gerekir bunu düzeltmek için.
module ApplicationHelper
def url_for(options = nil)
if Hash === options
options[:protocol] ||= 'http'
end
super(options)
end
end
Bu '' açıkça belirlenmiştir (yardımcı çağırırken yolları veya) sürece. http protokolü koyacaktır
Https için http yeniden yönlendirme kö...
Heroku NodeJS https ssl zorla için htt...
Nasıl HTTP HTTPS yönlendirme musunuz?...
Otomatik düğüm ile bağlantısı/yeniden ...
Nasıl HTTPS için tüm HTTP isteklerini ...