SORU
22 EKİM 2010, Cuma


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
22 EKİM 2010, Cuma


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ı.rb
scope :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.

Herhangi bir yardımcısı
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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010
  • NightShader1

    NightShader1

    25 Temmuz 2006
  • TheDroidDemos

    TheDroidDemo

    15 ŞUBAT 2011