さくらインターネットのレンタルサーバで初期ドメインでのウェブアクセスを拒否する

仕事で対応が必要だったので実践したことをメモ。

やりたいこと

記事のタイトルどおりですが『独自ドメインを設定したさくらインターネットのレンタルサーバで、初期ドメインでのウェブアクセスを拒否したい』です。

さくらインターネットのレンタルサーバを契約すると、『example.sakura.ne.jp(exampleの部分には申し込み時に希望した文字列が入る)』という初期ドメインが発行されます。ドメインにこだわりがなければ費用を掛けずに初期ドメインのままサイトを運用できるので便利なサービスではあります。

もちろんサーバは独自ドメインでも運用可能。また、ひとつのサーバ契約で複数の独自ドメインを利用できるマルチドメインにも対応しています。

今回の問題は「独自ドメインを設定したサーバでも初期ドメインでアクセスできてしまう」ことです。最初の設定にもよりますが、例えば『example.com』というドメインを取得してサイトを開設した場合、初期ドメインである『example.sakura.ne.jp』でも同じサイトが閲覧できてしまいます。

せっかく独自ドメインを取得したのに初期ドメインでもアクセスできてしまうというのはどうにもカッコ悪いし、何よりさくらのレンタルサーバを使っていることが容易に特定できてしまうのでセキュリティ的にもあまりよろしくない(サーバコンパネのログインIDは初期ドメインです)。できるだけ初期ドメインの存在を匂わせないようにするのが今回の目的です。

やったこと

ここからの流れは以下の前提でレンタルサーバを使用中と仮定した設定手順です。

  • 初期ドメインは『example.sakura.ne.jp』
  • サーバに設定されている独自ドメインは『tsukubaya.info』
  • 初期ドメイン・独自ドメインどちらでアクセスしても同じサイトが開いてしまう
wwwディレクトリ内のイメージ

レンタルサーバのドキュメントルートのイメージ。
前提条件どおり(で静的サイト)ならこんな状態になっていることが多いはず。

1.独自ドメイン用のディレクトリを作る

サーバのドキュメントルートである『www』の直下に独自ドメイン用のディレクトリを作成し、『www』直下にあるサイトのデータを作成したディレクトリに移動させます。

今回は『www』の直下に『tsukubaya.info』ドメインで公開しているサイトのデータが格納されている前提での例なので、『www』の直下に『tsukubaya』というディレクトリを作成し、この中にサイトのデータをすべて移動しました。

ディレクトリを作成し、独自ドメインで公開したいサイトのデータをすべて移動。

(※)ここまで行うと、ブラウザで初期ドメイン(example.sakura.ne.jp)または独自ドメイン(tsukubaya.info)にアクセスするとエラー表示(※)となり、『example.sakura.ne.jp/tsukubaya/』または『tsukubaya.info/tsukubaya/』にアクセスするとこれまで初期/独自ドメインで表示されていたサイトが開くようになります。

設定によってはファイルの一覧(Index of)が見えるようになってしまいます。これはこれで問題なので対策しておきましょう。(さくらのサポート情報:ホームページにアクセスすると、ファイルの一覧(Index of)が見えてしまう

2.コントロールパネルで独自ドメインの設定を変更

レンタルサーバのコントロールパネルにログインし、独自ドメインでアクセスしたときのルートディレクトリを『www』から手順1で作成したディレクトリに変更します。

コントロールパネルにログインし、メニューの『ドメイン/SSL』をクリック

『ドメイン/SSL』を選択

独自ドメイン(ここでは『tsukubaya.info』)の設定をクリック

独自ドメインの『設定』ボタンをクリック

『Web公開フォルダ』に手順1で作成したディレクトリ名を入力(ここでは前提条件に合わせて『/tsukubaya』と入力)

手順1で作成したディレクトリ名を入力

ここまで行うと、ブラウザで初期ドメイン(example.sakura.ne.jp)にアクセスするとエラー表示、独自ドメイン(tsukubaya.info)にアクセスするとサイトが開くようになりますが、『example.sakura.ne.jp/tsukubaya/』にアクセスしても相変わらず独自ドメインと同じサイトが表示されてしまいます。

3.『.htaccess』で初期ドメインへのアクセスを拒否する

『www』直下に『.htaccess』を作成し、以下のとおり記載します。

.htaccessを追加

既に『.htaccess』がある場合は追記でOK

RewriteEngine on
RewriteCond %{HTTP_HOST} example\.sakura\.ne\.jp
RewriteRule ^.*$ - [R=404,L]

『example』の部分は自分のサーバに設定されている初期ドメインに合わせて書き換えてください。

以上で作業完了。これで独自ドメイン(tsukubaya.info)にアクセスしたときのみサイトが開くようになり、『example.sakura.ne.jp/tsukubaya/』ではエラー表示(404)となります。初期ドメインから独自ドメインと同じサイトにアクセスするのは不可能になった…はずです。

まとめ

とりあえずやりたいことは実現できました。ドメインをどこで取得しているかとか、サイトを常時SSL化しているかどうかで設定しなくてもいい部分もあるっぽいですが、いろいろいじり倒した結果ではこれがベターなんじゃないかと思われます。

ちなみに独自ドメインひとつしか扱わないのであれば、上記手順の1と2はスルーして3だけでも問題はなさそうです。ただし、同じサーバでサブドメインあるいはまったく別のドメインで新しいサイトを公開する予定が少しでもあるなら、1と2もやっておいた方が後々面倒じゃないと思います。(新ドメインで運用するサイトを追加したい場合は、新ドメイン用にもう一度1と2の手順を行えばOK)

コメント

タイトルとURLをコピーしました