torinaブログ

DjangoとBootstrap4で作成したブログ
Python, Django, Kivy, Bootstrap, Apache等のメモです
ソースコード

Apache、mod_rewriteで特定ホストのアクセス制限

Apache Apacheモジュール
約329日前 2016年4月4日11:26
例えばですが、以下の設定があったとします

http://host.com/test 以下で、特定のIPアドレスとホストのアクセスをerror.htmlに遷移させています。
ですがIPアドレスはちゃんと遷移するんだけど、ホストの制限ができない場合がございます
<Directory /var/www/html/test>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^14\.101\.147\.76 [NC,OR]
RewriteCond %{REMOTE_HOST} \.dion\.ne\.jp [NC]
RewriteRule ^(.*)$ error.html
</Directory>


結論から書くと、以下のようにするとホストでの制限ができます
違いはHostnameLookups On です
<Directory /var/www/html/test>
HostnameLookups On
RewriteEngine on
#RewriteCond %{REMOTE_ADDR} ^14\.101\.147\.76 [NC,OR]
RewriteCond %{REMOTE_HOST} \.dion\.ne\.jp [NC]
RewriteRule ^(.*)$ error.html
</Directory>


2つ注意点がありまして、

1つめはHostnameLookups Onは.htaccessには書けません
confファイルに書きましょう

2つめは、HostnameLookups Onは特定ディレクトリやファイルのみなどに指定するのがよいです。これはパフォーマンスのためです

参考
http://www.itmedia.co.jp/help/tips/linux/l0319.html
http://blog.dacelo.info/apache/entry-1077.html
http://php.net/manual/ja/reserved.variables.server.php