残しときます(自分用)

忘れないうちにね!

Debian Jessie に apache2 を入れてみた【補足:バーチャルホスト編】

もりすけです。

前回アップした記録の続きです。

namotch.hatenablog.com

この記録ではドメインで設定ファイルを分けていました。

反映される設定ファイル

では、設定ファイルを作っていないドメインやIPアドレスを指定したら
どの設定が反映されるでしょうか。

答えは

「有効化された設定ファイルの一番最初」

です。

drwxr-xr-x 2 root root 4096  6月  6 21:17 .
drwxr-xr-x 8 root root 4096  6月  6 21:08 ..
-rw-r--r-- 1 root root 1332  2月  1 17:23 000-default.conf
-rw-r--r-- 1 root root 6437  2月  1 17:23 default-ssl.conf
-rw-r--r-- 1 root root 1332  6月  6 21:17 example.com.conf

※すべてのファイルが `a2ensite` で設定を有効化しているものとします。

この場合、設定ファイルを作っていないドメインでアクセスがあると、

000-default.conf

が反映されます。

だからデフォルトファイルは default.conf ではなく、
頭に 000- をつけて一番最初にいるんですね。

設定ファイルのないドメインのアクセスをどうする?

では、どう対処するか。

設定ファイルのないドメインは404に飛ばしてしまいましょう。

/etc/apache2/sites-available$ sudo vi 0000-404.conf

ファイル名は一番上になればなんでもいいです。
わかりやすいように404もファイル名に入れておきました。

<VirtualHost *:80>
    ServerName 404
    Redirect 404 /
</VirtualHost>

ServerName はなんでもいいです。
Redirect 404 / で404ページにリダイレクトします。

こうしておけば、設定をしていないドメイン
すべて404ページに飛ばされることになりますので、
他のドメインの設定が勝手に反映されて表示された
なんてことがおこらなくなります。

逆にすべて特定のドメインにリダイレクトさせることも
できるので便利ですね。

最後に

ドメインによってファイルを分けていますので
ページ内容が別のドメインに反映されたら
たいへんなことになります。

この設定はしっかりしておいたほうがいいかもしれませんね。