さくらインターネットで 「wwwなしに統一」 を解決

www.ドメイン名.jp を wwwなしのドメイン名.jp にリダイレクトしようと、.htaccessに

RewriteEngine on
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有りと無しとを区別しません。

そこで、こちらを参考にして解決しました。以下、 その解決手順です。

  1.  まず、さくらのドメイン名.jpのドメイン設定で
    ・wwwを付与せずマルチドメインとして使用する(上級者向け)
    を選択する。
  2.  次に、『新しいドメインを追加する』でwww.ドメイン名.jpを追加する。 このとき、www.ドメイン名.jpのフォルダパスを、ドメイン名.jpとは別に設定する。 これでブラウザからwww.ドメイン名.jpが呼び出されると、ドメイン名.jpとは別のフォルダパスに飛びます。
  3.   このwww.ドメイン名.jpのフォルダパスに.htaccessを置いて
    RewriteEngine on RewriteBase /
    # 通常のURL(ドメイン名.jp/)にリダイレクト。
    RewriteRule ^(.*)$ https://ドメイン名.jp/$1 [R=301,L]

    を書き込む。

  4. これなら、フォルダパスの飛び先でwww有りを判別し、www無しにリダイレクトできます。 このリダイレクトで飛ぶのは、www無しのフォルダパスです。 www有りのフォルダパスに再び戻ることはないので、無限ループ問題も起こりません。
    1. これで、スッキリ解決しました。