Apacheでhttp→https, www→無しのリダイレクト設定を実装する

以下の<やりたいこと>2つをApacheで実装するやり方を記載しました。
意外に中々纏まっている記事がないので、備忘録として。

< やりたいこと >
・httpで来たらhttpsにリダイレクト
・www付きで来たらwwwを削除する

< 実装内容 >
設定ファイルに以下を記載するだけです。 AWSのEC2にアクセスする際にELBを通ってアクセスしますが、そこでhttps(443)→http(80)に直った状態で、EC2にアクセスしにくる。その際にリダイレクトループに陥らないための書き方が、「 %{HTTP:X-Forwarded-Proto} =http 」の部分なので要注意でした。

  RewriteEngine On
  # redirect from http to https
  RewriteCond %{HTTP:X-Forwarded-Proto} =http
  RewriteRule     ^/(.*)  https://%{HTTP_HOST}/$1 [R=permanent]

  # redirect from www.example.com to example.com
  RewriteCond %{HTTP_HOST} ^www.example.com [NC]
  RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

以下の参考サイトのおかげでリダイレクトループから脱出できました。
ここら辺はAWS特有だから気付きにくかった。。

▼参考サイト qiita.com

今日もお疲れ様でした。