ユーザーに応じて一部のページにsslが必要なRails 3.1.0アプリに取り組んでいます。
config/enviroments/staging.rb で config.force_ssl を false に設定しました。http にリダイレクトするかどうかを決定する before フィルターを追加しました。キャッシュを消去すると、開発中にリダイレクトが機能します。
問題はステージングにあり、リダイレクト ループが発生します。force_ssl は永続的なリダイレクトを使用していると思われるため、DNS がアプリ内のページについて尋ねられた場合でも、ssl を使用してページにリダイレクトしようとします。これは意味がありますか?
私のオプションは何ですか?
編集
キャッシュを消去しました。これは、最初にページに入ったときにのみ問題を解決します。すべてのキャッシュを更新して http ページに入るとします。これにより、http ページが表示されます。ページを終了し、ssl を含む別のページに入り、http ページに戻ろうとすると、無限リダイレクトが再び開始されます。
私が実装した解決策は、安全でないサブドメインにリダイレクトすることでした。それを「安全でない」と呼びましょう。したがって、http ページにリダイレクトする必要がある場合は、http://unsafe.mydomain.comにリダイレクトします。これにより、無限リダイレクトは解決されますが、一部の https ページがまだキャッシュされています。
本当の問題は、 :status => :moved_permanently を使用するのがいつ役立つかということだと思います。ページがキャッシュされ、このキャッシュをきれいにするのが難しくなるからです。