www.ドメイン名.jp を wwwなしのドメイン名.jp にリダイレクトしようと、.htaccessに
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^ドメイン名.jp [NC]
RewriteRule ^(.*)$ – [L]
RewriteCond %{HTTP_HOST} ^www.ドメイン名.jp [NC]
RewriteBase /
RewriteCond %{HTTP_HOST} ^ドメイン名.jp [NC]
RewriteRule ^(.*)$ – [L]
RewriteCond %{HTTP_HOST} ^www.ドメイン名.jp [NC]
RewriteRule ^(.*)$ https://ドメイン名.jp/$1 [R=301, L]
と書き込みましたが、うまくリダイレクトできません。 さくらでOptions +FollowSymLinks を使えないことが原因のようです。 %{HTTP_HOST}が、www有りと無しとを区別しません。
そこで、こちらを参考にして解決しました。以下、 その解決手順です。
- まず、さくらのドメイン名.jpのドメイン設定で
・wwwを付与せずマルチドメインとして使用する(上級者向け)
を選択する。 - 次に、『新しいドメインを追加する』でwww.ドメイン名.jpを追加する。 このとき、www.ドメイン名.jpのフォルダパスを、ドメイン名.jpとは別に設定する。 これでブラウザからwww.ドメイン名.jpが呼び出されると、ドメイン名.jpとは別のフォルダパスに飛びます。
- このwww.ドメイン名.jpのフォルダパスに.htaccessを置いて
RewriteEngine on RewriteBase /
# 通常のURL(ドメイン名.jp/)にリダイレクト。
RewriteRule ^(.*)$ https://ドメイン名.jp/$1 [R=301,L]を書き込む。
- これなら、フォルダパスの飛び先でwww有りを判別し、www無しにリダイレクトできます。 このリダイレクトで飛ぶのは、www無しのフォルダパスです。 www有りのフォルダパスに再び戻ることはないので、無限ループ問題も起こりません。
-
これで、スッキリ解決しました。