ウェブサイトのURLを、httpからhttpsへのリダイレクトしつつ、wwwのありなしを統一するための.htaccessのコード記述についてまとめました。
今回の記述を検証したレンタルサーバーはエックスサーバーです。
httpからhttpsへリダイレクトさせる記述
以下の3行を.htaccessに記述します。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://exapmle.net/$1 [R=301,L]
この記述によって、httpからhttpsのURLへリダイレクトさせることができます。 (コード中のexapmle.netは例なので自分のドメインに置き換えて下さい)
http://exapmle.net/
http://www.exapmle.net/
のどちらでアクセスしても
https://exapmle.net/
にリダイレクトします。
エックスサーバーはデフォルトでwwwありなし、どちらのURLもアクセスできる仕様です。 (他のレンタルサーバーでも同様の仕様は多いかと思います)
上記の記述だけだと
https://www.exapmle.net/
にアクセスすると転送されず、そのまま表示されます。
httpsのURLでwwwありなしを統一する記述
wwwありから、wwwなしのURLに統一する場合は下記のように記述します。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.exapmle\.net)(:80)?
RewriteRule ^(.*) https://exapmle.net/$1 [R=301,L]
wwwなしから、ありのURLに統一する場合は下記のように記述。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(exapmle\.net)(:80)?
RewriteRule ^(.*) https://www.exapmle.net/$1 [R=301,L]
いずれかの記述によって、httpsのURLにおいてwwwありなしを統一することができます。
URLを統一する.htaccessの記述まとめ
前述のコードを続けて.htaccessに記述してサーバーにアップロードすればURLの統一ができます。
wwwなしのhttpsのURLに統一したい場合
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://exapmle.net/$1 [R=301,L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.exapmle\.net)(:80)?
RewriteRule ^(.*) https://exapmle.net/$1 [R=301,L]
wwwありのhttpsのURLに統一したい場合
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.exapmle.net/$1 [R=301,L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(exapmle\.net)(:80)?
RewriteRule ^(.*) https://www.exapmle.net/$1 [R=301,L]
.htaccessで行うURLの統一は、同じ内容のページが別URLとして検索エンジンにインデックスされるのを防げるので設定しておくのをオススメします。