Amazon Linux / Apache で
かなり試行錯誤しましたが、以下の記事を参考にしてなんとかできました。
AWS Elastic Load Balancer と Apache を使って HTTPS(SSL) 通信を行うための設定方法 - komiyakの通り道
http://d.hatena.ne.jp/komiyak/20130807/1375845025
多くのサイトでは .htaccess内に以下のように記述しろと書いてあるのですが、なぜかダメ...
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
上記サイトを参考に
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker
を入れてみましたが、
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ #←ここがどうも認識されていない?...
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker #←これも必要
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
これもだめ。
以下のようにPortで判定するようにしたら、できました。
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Port} ^80$ #←Portで判定
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker #←これも必要
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
少々釈然としませんが、時間のあるときにまた調べてみます。
※なぜリダイレクトがエラーになるかは以下が参考になりました。異なる対処方法も書いてあります。
AWS環境でELB(ロードバランサー)とEC2サーバでapacheを使っている場合にhttpからhttpsにリダイレクトする方法 – joppot
https://joppot.info/2014/05/01/1286
0 件のコメント:
コメントを投稿