犬ターネット

Apache httpd で VirtualHost 運用時、IP アドレスでアクセスされた場合に 403 Forbidden を返す

2017-02-22 apache

VirtualHost を設定している場合、どの ServerName にも一致しない場合は先頭の設定が使われる。という仕様を使って、IPアドレスでアクセスされた場合に 403 Forbidden を返すには以下のようにすればOK。

まずダミーのドキュメントルートを作成。

mkdir /path/to/docroot_dummy

httpd.conf を以下のように修正して httpd restart 。

NameVirtualHost *:80

# IP直打ちの場合の設定 <VirtualHost *:80> DocumentRoot /path/to/docroot_dummy # 実際には存在しないServerName ServerName dummy.example.com <Directory "/path/to/docroot_dummy"> Order deny,allow Deny from all </Directory> </VirtualHost>
# site1.example.com <VirtualHost *:80> DocumentRoot /path/to/docroot_site1 ServerName site1.example.com <Directory "/path/to/docroot_site1"> # 各種設定... </Directory> </VirtualHost> # site2.example.com <VirtualHost *:80> DocumentRoot /path/to/docroot_site2 ServerName site2.example.com <Directory "/path/to/docroot_site2"> # 各種設定... </Directory> </VirtualHost>

サーバを借りたはいいものの

Tetsukabuto at SoundStone, Kotesashi (2017.02.18)