■正規表現で許可ホストを指定できませんか?
aaaa56.hatena.ne.jpというドメインがあり、56の部分が変動し、aaaaは固定です。
その場合に「aaaa32.hatena.ne.jp」からは許可、「bbbb32.hatena.ne.jp」は拒否したいです。
そのやり方を知らないため、今は「allow from .hatena.ne.jp」のように書いています。
<イメージ>
order deny,allow
deny from all
allow from aaaa[0-9]{2}.hatena.ne.jp
■許可グループを設置して、一括で管理できないものでしょうか?
認証はグループを設定して、許可グループで許可を与えることができると思います。それと同じように、ホストでの認証についても、グループ設定して、そのグループで管理できないものでしょうか。
これはたぶん、無理だと思います。
<イメージ>
order deny,allow
deny from all
allow from HOGE_GROUP
host file /etc/httpd/.group
"SetEnvIf"と"Deny from env="を使うとできます。
下記が参考になると思います。
.htaccessで正規表現を使い特定のホストをアクセス禁止
http://sb.xrea.com/showthread.php?t=9432
アクセス拒否の方法
http://plasticdreams.org/archives/2006/08/21/1342/deny-refere-sp...
以下の設定でいけます。
#HTTP_HOSTを取得する為のダミー設定 order allow,deny allow from all deny from dummy.example.jp #ホスト名の正規表現によって拒否 RewriteEngine On RewriteCond %{REMOTE_HOST} !^aaaa[0-9]{2}\.hatena\.ne\.jp$ RewriteRule . - [F]
複数の許可(拒否しない)設定が必要ならRewriteCondを複数行書けば良いです。
基本はREMOTE_HOSTを mod_rewrite でマッチさせてるだけですが、ポイントはダミーの deny from を書いておくことです。
通常サーバの負荷を軽減する為に逆引きは行われないため、環境変数REMOTE_HOSTは設定されません。ですが、allow from 等でホスト名が使われると逆引きを行う必要が出るので逆引きが実行されます、この際に一緒に環境変数REMOTE_HOSTも設定されることを使います。
あとはこの変数の値を mod_rewrite で好きに扱えばよいというわけです。
ありがとうございます。下の方の方法でうまくいきましたが、mod_rewriteを使う方法も勉強したいと思います。
"SetEnvIf"と"Deny from env="を使うとできます。
下記が参考になると思います。
.htaccessで正規表現を使い特定のホストをアクセス禁止
http://sb.xrea.com/showthread.php?t=9432
アクセス拒否の方法
http://plasticdreams.org/archives/2006/08/21/1342/deny-refere-sp...
ありがとうございます。
order deny,allow
deny from all
allow from 192.168.1.0/25
SetEnvIf Remote_Host "aaaa[0-9]{5}\.hatena\.ne\.jp" Access
allow from env=Access
とすることで、目的達成できました!192.168.1.0/25だけ、SetEnvIfの中に書くとうまくいかなかったので、外だししています。あとHostNameLookupsをonにしないと、ドメイン制限できないですね。。
いままでは、allow from .hatena.ne.jp とやってたので、全部nslookupしにいっていたとおもいますが。。
ありがとうございます。
order deny,allow
deny from all
allow from 192.168.1.0/25
SetEnvIf Remote_Host "aaaa[0-9]{5}\.hatena\.ne\.jp" Access
allow from env=Access
とすることで、目的達成できました!192.168.1.0/25だけ、SetEnvIfの中に書くとうまくいかなかったので、外だししています。あとHostNameLookupsをonにしないと、ドメイン制限できないですね。。
いままでは、allow from .hatena.ne.jp とやってたので、全部nslookupしにいっていたとおもいますが。。