目次
方法
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
解説
基本
%{変数}
は、変数を参照する書き方
HTTPSなど、htaccessでは、参照できる変数がいくつかある。
RewriteEngine on
URLを書き換えモードする記述
RewriteCond %{HTTPS} off
RewriteCond 対象文字列 条件式 [フラグ]
rewrite condition
書き換え条件です。
対象文字列 - %{HTTPS}
%{変数}とは
HTTPS
変数はHTTPSかどうかのフラグ、
内容は、on
かoff
が入っています。
条件式 - off
off
は条件式でHTTPSがoffだったら書き換えるよ!ってことです。
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule 正規表現 置換URL [フラグ]
正規表現 - ^(.*)$
まずは、.
これは何の文字でもOK!ってこと。
次に*
これは、ひとつ前の文字が0回以上繰り返すものがOK
ひとつまえは.
なので、何かしらの文字が0回以上繰り返したらOK!ってこと。要するに全部の文字列
VSCDOEの場合これで、同じように選択できてしまうんですよね。
そして、^
これは、.*
が行の先頭かどうか
$
これは、.*
が行の最後かどうか
行単位での指定だよって厳格になっているのかな?
念のためついているのか、つけないと動かないのかは試してないです。
置換URL - https://%{HTTP_HOST}%{REQUEST_URI}
%{変数}とは
HTTP_HOST
はホスト名、私の場合は417.run
REQUEST_URI
はこのページの場合/how-to-redirect-www-and-http-to-https-with-htaccess-and-explanation/2684/
です。
つまり、展開すると、
https://417.run/how-to-redirect-https/2684/
フラグ - [R=301,L]
R=301
は、リダイレクト301ページの引っ越しを示します。
L
はLast
これに該当したら、終わりです。URLの置換に成功したら終わりということです。