2014年9月26日金曜日

AWS Elastic BeanstalkのSSLで、wwwあり、なしを統一する

Beanstalkを使っていて、wwwを統一したいとき、httpd.confはいじれないので、htaccessで行うことにしました。
httpの場合は簡単なのですが、httpsの場合はネットワークインターフェースを噛ましてるので、うまく行かず。SERVER_PORTとか取れないんですね。
いろいろ探して、以下のようにしたらできたようなのでメモ。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^example\.jp
    RewriteCond %{HTTP:X-Forwarded-Proto} =https
    RewriteRule ^(.*)$ https://www. example.jp/$1 [r=301,L]

    RewriteCond %{HTTP_HOST} ^ example\.jp
    RewriteRule ^(.*)$ http://www. example.jp/$1 [R=301,L]

</IfModule>