この4つはANDで評価されます。そのため、4つの条件がすべて成り立つときのみRewriteRuleが実行されます。続いて4つの条件の説明をします。offは、「WEBブラウザーからのWEBアクセスの暗号化通信がoffだったら」という条件です。今回の行いたいことの主条件となります。次は、先に4つ目の条件を説明します。終わらないもの」という条件です。先頭の!が否定の意味になります。jsファイル、cssファイル、画像ファイル(gif,jpg,png,ico,svg)のアクセスはWEBブラウザーの通信方法の主張を尊重しましょうぐらいの意味です。これらのファイルはユーザーがURLを直接指定してアクセスすることは少ないので、強制的に非暗号化通信から暗号化通信に転送しなくてもいいかなぁと思い、追加しました。!=httpsこの2つ目、3つ目の条件は、今回の共用サーバーSDでは必要のない設定ですが、将来そのような環境に変更になっても問題ないように設定しておきました。処理の高速化や負荷分散のためにロードバランサーなどのSSLアクセラレーターがWEBブラウザーとWEBサーバーの間に入ってきたときに必要となる設定です。WEBサーバーという経路で通信します。WEBサーバー」は非暗号化通信(http)となります。off」の条件が成り立ってしまいます。結果として、WEBサーバーでhttpsへの転送が発生し、永遠と転送が発生してしまうことになります。これを避けるための設定です。経路の間にSSLアクセラレーターが入っている場合、ほとんどの場合、HTTPヘッダーに、その目印が追加されます。httpsへの転送をしないようにします。あったり、CloudFront-Forwarded-Protoであったりします。SSLアクセラレーターを経由した場合、これらのパラメータにhttpsという値が設定されます。なかったらという条件です。これで、経路にSSLアクセラレーターがあっても転送のループが避けられます。転送されることを確認できました。これで、WEBサーバーの暗号化通信の設定は完了です。