【.htaccess】http→httpsへのリダイレクト

2021年9月26日

こう書く。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

解説

RewriteEngine on

→正規表現でURLを書き換える機能(Rewrite)をonにする。

RewriteCond %{HTTPS} off

→URL書き換えを行うルール条件(RewriteCond)を指定。「%{HTTPS}」は変数名で、HTTPSアクセスか否かを示している。offは条件。なので、これは、HTTPSアクセスでないときという条件になる。

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

→URLをどう書き換えるのか?

「^(.*)$」が正規表現。「^」は行頭を示し、「(.*)」はすべての文字列、「$」は行末を示す。なので、すべてのURLの場合「https://%{HTTP_HOST}%{REQUEST_URI}」に書き換えるということ。「R=301」は301リダイレクトしなさい。という指示。Lはこの処理はここでおしまい。という指示。