さくらのレンタルサーバーで初期ドメインでのアクセスを拒否する
問題
さくらのレンタルサーバーは「********.sakura.ne.jp」形式の初期ドメインが割り当てられていて、以下のようなURLでマルチドメイン用に置いたものなどが表示されてしまうのですが、簡単に表示されないようにできませんか?
http://********.sakura.ne.jp/example.com/~~
答え
さくらのレンタルサーバーはApache2.4になったので、<If>ディレクティブが使える。
<If> でHTTP_HOST が ~~.sakura.ne.jp のとき、アクセスを拒否できる。
一番上の階層の .htaccess に書けば、全体的に適用される。配下のマルチドメインで運用しているWebサイトに初期ドメインではアクセスできなくなる。
例)
<if "%{HTTP_HOST} =~ /sakura\.ne\.jp/"> Deny from All </if>
=~ で正規表現にマッチするかどうかの判定が使える。
上の例だと、sakura.ne.jp を含む場合となる。
厳密に、sakura.ne.jp で終わる場合に限定するなら、以下のようになる。
<if "%{HTTP_HOST} =~ /sakura\.ne\.jp$/"> Deny from All </if>
「含む」でも支障ないと思う。test.sakura.ne.jp.example.com のような不思議なサブドメインを使わない限りは。
Deny 以外には Redirect なども可能。初期ドメインで運用していたWebサイトに独自ドメインを割り当てたといった場合ならRedirectしてもよいかもしれない。通常、初期ドメインは他の人は知らないと思うので最初からアクセス拒否で問題ないと思う。
メモ
Apache2.4のIfで使える表現の詳細
コメント