我正在將應用程序移動到heroku,並且在使用ssl和重定向時遇到了一些問題。在force_ssl之前重定向到'www'
我在rails 3.1上,我試過在production.rb環境中用中間件強制ssl。我都嘗試將它添加到應用程序控制器。
問題是,當我執行ssl的完整站點強制時,在達到SSL要求之前,我無法重定向到www。這很重要,因爲如果用戶訪問https://mydomain.com,則會顯示一個錯誤的SSL證書警告。如果他們繼續,他們然後重定向到'www'。
SSL強制正在工作,重定向到'www'子域正在工作,我只需要首先執行重定向。
任何想法?
每Nathan的評論:
我有一個不完美的解決方案。我的root_path不是強制ssl。敏感信息的所有部分都強制它。抵達後,所有的流量被定向到www這個在我的routes.rb:
constraints(:host => "domain.com") do
match "(*x)" => redirect { |params, request|
URI.parse(request.url).tap { |x| x.host = "www.domain.com" }.to_s
}
end
這可能隱藏了大部分的問題,由時間來對用戶符號或其他任何點擊,他們現在在www域。瀏覽器不會發出有關證書的警告。這對這個特定的項目工作得很好。另一個項目我最終花了大筆錢購買一張已簽名的通配符證書。
對不起,不是真正的解決方案。如果您去https://domain.com/forcedsslpath該項目仍然會提供安全警告。
你能解釋一下你做了什麼來解決這個問題嗎?我有同樣的問題。我看到你接受了一個答案,但我不確定在閱讀後應該嘗試什麼。謝謝! –
在heroku上託管時,我遇到了各種指南中的相同問題。我從來沒有想過沒有去通配證書。 – Kombo