httpsとwww統一の設定をしてみた(Xserver・さくらレンタル)
2023.01.20 15:08
2023.05.18 18:27

Xserverやさくらレンタルなどのレンタルサーバーでのhttpsとwwwを統一する方法がわからなかったので、調べてメモしてみました。それぞれの会社のサーバーや設定によって若干クセがあるようでした。設定は.htaccessに記述します。
Xserverでの設定
https強制/wwwなし
RewriteEngine on
RewriteBase /
# wwwありの場合、なしにリダイレクト
RewriteCond %{HTTP_HOST} ^(www.hogehoge\.com) [NC]
RewriteRule ^(.*)$ https://hogehoge.com/$1 [R=301,L]
# httpでのアクセスはhttpsにリダイレクト
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
https強制/wwwあり
RewriteEngine on
# wwwなしの場合、ありにリダイレクト
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# httpでのアクセスはhttpsにリダイレクト
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode
さくらレンタルでの設定
https強制/wwwなし
<IfModule mod_rewrite.c>
RewriteEngine On
# httpでのアクセスはhttpsにリダイレクト
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
RewriteRule ^(.*)$ https://hogehoge.com/$1 [R=301,L]
# wwwありの場合、なしにリダイレクト
RewriteCond %{HTTP_HOST} ^(www\.hogehoge\.com) [NC]
RewriteRule ^(.*) https://hogehoge.com/$1 [R=301,L]
</IfModule>
https強制/wwwあり
wwwありの場合は、さくらのコントロールパネルからwwwのサブドメインを追加し、SSLを割り当てておく必要があるようです。こっちのほうがちょっとめんどくさいですね。
<IfModule mod_rewrite.c>
RewriteEngine On
# httpでのアクセスはhttpsにリダイレクト
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
RewriteRule ^(.*)$ https://hogehoge.com/$1 [R=301,L]
# wwwなしの場合、ありにリダイレクト
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
個人的にはwwwなしで統一するのがすっきりかなぁと思っています。
今回は以上です!