Xserverで「www」あり・なしを別々に運用する

Xserver では「www」をサブドメインとして使えない。
が、お客様から「どうしても」と頼まれたので別運用する方法についての備忘録。

■ 背景

お客様からレンタルサーバーの乗り換え依頼を受けた。
Xserver をお勧めして無事受注。

移行を進めている過程で、
http[s]://example.com/
http[s]://www.example.com/
を別サイトとして運用したいと言われたので…

Xserver へ質問した回答は

> お問い合わせいただきありがとうございます。
> 恐れ入りますが、当サービスでは「www」あり・なしのいずれも
> ドキュメントルートが同一ですので、異なるWebサイトをご運用
> いただくことはかないません。

また、サブドメイン設定で「www」を入力して[確認画面へ進む]をクリックすると、
> サブドメイン名に「 www 」はご利用いただけません。
と表示され、サブドメインは作れない。

■ どう対応したか…

① ファイルマネージャからサブドメイン用のフォルダを作成する
  ・作成する位置
  > example.com > public_html
  ・作成するフォルダー名
  > www.example.com

② .htaccess に以下の内容を追記する
  ・編集する .htaccess の位置
  > example.com > public_html
  ・追記する内容
   RewriteEngine on
   RewriteCond %{HTTP_HOST} ^www. [NC]
   RewriteCond %{REQUEST_FILENAME} !(/www.example.com/)
   RewriteRule ^(.*)$ www.example.com/$1 [L,NS]

③ http[s]://example.com/www.example.com/ でのアクセスを禁止する
  以下、Xserver より転記
  > サブドメインのアクセスのみを許可して、ドメインでのアクセスを禁止する方法
  > http://abc.example.jp/ の場合、通常 http://example.jp/abc.example.jp/
  > (http://example.jp/abc/)でもアクセスが可能となります。
  > .htaccess に下記の「記述内容」を記載し、サブドメインフォルダ内(abc.example.comまたは
  > abcフォルダ)に設置することにより、http://example.jp/abc.example.jp/
  > (http://example.jp/abc/)でのアクセスを拒否することも可能です。
  > ■ .htaccessファイルの設置先
  > /example.jp/public_html/abc.example.com/(/example.jp/public_html/abc/)
  > 記述内容(下記は abc.example.jp でのアクセスのみ許可する、という内容です。)
  >   SetEnvIf Host “^abc.example.jp$” host
  >   order deny,allow
  >   deny from all
  >   allow from env=host

■ 運用してみて…、その他のこの

・ 今のところ目立った問題はないような気がする…
・ 本件で Xserver への問い合わせは行わないように…
・ 実装は自己責任で…