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 への問い合わせは行わないように…
・ 実装は自己責任で…