平成30/ 2018-10-24 06:44
Apache/Mod_Redirect/ロードバランサ使っている場合

ロードバランサでSSLも非SSLも同じポート(80とか)つかっている場合は
HTTP_X_FORWARDED_PROTO
が、http or https
にしているケースが多いので
その場合は以下のようにリダイレクトさせる。


#### http->https
リダイレクトできます。

    RewriteCond %{REQUEST_URI} ^/admin/ [OR]
    RewriteCond %{REQUEST_URI} /apply/
    RewriteCond %{HTTP:X-Forwarded-Proto} !^https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]

#### https->http
これはリダイレクトできなかった。
ロードバランサの設定の問題かもしれないし、
他の対応方法あるかもしれない(調べたが現状不明)
mod_sslをインストールしてSSLを有効にしてみたがダメだった。

(対応方法)
(1)ロードバランサーの設定者に問い合わせる。

(2)リダイレクトを工夫する(サーバに同じホスト名であると認識させないよう
にする)
https://yyy.com/
から
http://yyy.com#
へはリダイレクトできます。
しかし、現バージョンのIE、Chrome、Firefoxで確認しましたが、
古いバージョンだと上手くいかない可能性あります。

(3)PHP側で対応する。


以上。

(Thanks.)
How to redirect traffic to http
http://serverfault.com/questions/438612/how-to-redirect-traffic-to-http