.htaccess でさくらレンタルサーバーのWordPress で www.無しドメインに統一する方法

さくらレンタルサーバーでは .htaccess の設定でドメインなしとありを統一する方法が紹介されています。

この手法はとてもシンプルでおすすめの方法です。ヘルプを参考に実際のドメインを例に設定をしてみましょう。

さくらレンタルサーバーでは、.htaccess なしのプラグインを利用する方法が紹介されています。.htaccess を編集するよりも、プラグインの利用を推奨します。

.htaccessで www なしドメインを統一

さくらレンタルサーバーで紹介されているヘルプでは次のようになっています。

WordPressを常時SSL化、かつwww.無しドメインでのアクセスに統一したい
.htaccessの設定例

https://help.sakura.ad.jp/hc/ja/articles/206054622
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.example\.jp) [NC]
RewriteRule ^(.*) https://example.jp/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

こちらを参考にすればOKです。
例えば以下の部分などは他のサーバーでも使えますね。

RewriteCond %{HTTP_HOST} ^(www\.example\.jp) [NC]
RewriteRule ^(.*) https://example.jp/$1 [R=301,L]

こちらはロリポップ!レンタルサーバーの .htaccess で利用したことがあります。

実際のドメインを例に設定

当サイトのドメインは、camon.tokyo ですので .htaccess に以下のように記載します。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.camon\.tokyo) [NC]
RewriteRule ^(.*) https://camon.tokyo/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

example.com の部分を camon.tokyo に書き換えました。
このようにお持ちのドメインに書き換えて .htaccess へ記載することで、www ありのドメイン( https://www.camon.tokyo )を www なしのドメイン( https://camon.tokyo ) に統一することができました。

また SSL に統一されているので、HTTP でのアクセスも HTTPS にリダイレクトされるのが良いですね。

さくらレンタルサーバーの .htaccess では挿入場所に注意

.htaccess に挿入すれば OK と記載しましたが、さくらレンタルサーバーの .htaccess を確認したところ、記入場所には注意が必要だと感じました。

ソースを以下に表示しますのでご確認ください。

# BEGIN SAKURA Internet Inc.
<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript
</IfModule>
<IfModule mod_expires.c>
    ExpiresActive On
    <FilesMatch "\.(css|js)$">
        ExpiresDefault "access plus 1 week"
    </FilesMatch>
    <FilesMatch "\.(gif|jpe?g|png)$">
        ExpiresDefault "access plus 1 month"
    </FilesMatch>
</IfModule>
# END SAKURA Internet Inc.

# ここに常時SSL化のコードを記載

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

ソース内に「ここに常時SSL化のコードを記載」とコメントさせてもらいました。.htaccess にある 「#BEGIN WordPress」というブロックの後ろに記載してしまうと、動作に少し問題が生じたので躓きポイントだと感じました。

ドメイン設定は .htaccess で簡単に設定しよう

www ありを統一したり、HTTP のリダイレクトは、インターネット上には様々な方法が紹介されているため、何を選択していいのか迷ってしまうこともあるかもしれません。

当記事のさくらレンタルサーバーで紹介されている方法は、シンプルでさらに試しやすいリーズナブルな方法と感じています。

ドメイン周りのリダイレクトなどで迷ったらこの手法をご利用ください。

参考

https://help.sakura.ad.jp/hc/ja/articles/206054622