電子書籍の厳選無料作品が豊富!

嫌な閲覧者に付きまとわれているので、その人だけ弾きたいと思っています。
その人は大手のプロバイダでIPも毎回変動するので、ホストだけでは弾けません。
ですがちょっと少ないブラウザーを使っているようなので、ホストとUAを組み合わせた形でその人を絞り込んで弾こうと思ったのですが、記述の仕方が良く分かりません。
ホストだけの制限やUAのみの制限方法は分かってきたのですが…
二つ以上の条件を組み込んで制限するのは無理なのでしょうか。

具体例としては(例なので実際弾きたい人の情報とは違います)
・UAはcompatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0
・ホストはacca.tokyo.ocn.ne.jp
・Optionsは使えないので、それ以外の方法で

上記の条件に沿うような内容で、具体的に教えていただけると嬉しいです。
よろしくお願いします。

A 回答 (2件)

SetEnvIf User-Agent "[^(compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)]" uanm


SetEnvIf Remote_Host "[^(acca.tokyo.ocn.ne.jp)]" hnnm

order deny,allow
deny from all
allow from env=uanm
allow from env=hnnm
ではいかがでしょうか?

ただ・・・User-Agentとして送られてくる値を簡単に変更できるツールがたくさんありますので
人相手にアクセス制限の条件にUser-Agentを入れるのはどうかと思います
(一部ブラウザではUser-Agentの値の変更機能が標準で搭載されています)。
アクセス制限されたとわかればすぐにUser-Agentを変更しかねませんしね。

意味は以下のとおりです。

# User-Agentがcompatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0でない場合uanmをセット
SetEnvIf User-Agent "[^(compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)]" uanm

# Hose Nameがacca.tokyo.ocn.ne.jpでない場合hnnmをセット
SetEnvIf Remote_Host "[^(acca.tokyo.ocn.ne.jp)]" hnnm

# 不許可定義を適用した後許可定義を適用する
order deny,allow

# 全てのアクセスを不許可にする
deny from all

# uanmがセットされていれば許可
allow from env=uanm

# hnnmがセットされていれば不許可
allow from env=hnnm
    • good
    • 0
この回答へのお礼

重ね重ねありがとうございます。
UA偽装については存じておりますし、私自身もタブブラウザで少々いじって使ってますので、そこは覚悟の上です。
ご心配ありがとうございます。

さて、早速記述していただいたもので試してみたのですが、500エラーが出てしまいました…
が、良いヒントを頂けたのでもう少し試行錯誤してみます。

ありがとうございました!

お礼日時:2006/12/27 12:53

order allow,deny


allow from all
deny from acca.tokyo.ocn.ne.jp
ではいかがでしょうか。

order allow,deny
意味:許可定義の後に不許可定義の順番で定義を適用する
allow from all
意味:全てのアクセスを許可する
deny from acca.tokyo.ocn.ne.jp
意味:ホスト名がacca.tokyo.ocn.ne.jpのアクセスを不許可にする
です。

order allow,denyをorder deny,allowにすると不許可にした後許可定義でオーバーライドされてしまうので全てがアクセスできてしまいます。

この回答への補足

ありがとうございます。
ですが、これではacca.tokyo.ocn.ne.jpの人全てが弾かれてしまいますよね?
それでは困るんです。
ホストがacca.tokyo.ocn.ne.jpで、尚且つ
UAがcompatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0の
以上の2つの条件を満たした人だけを弾きたいのです。

流石にこのホストは利用者が多すぎるので、今は辛うじてUAで対策していまして、
SetEnvIf User-Agent "compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0" deny_ua
Order allow,deny
allow from all
deny from env=deny_ua
で凌いでいます。
しかしこのUAも他ホストで多少利用者がいるので、巻き添えで弾かれている人が出てくる可能性も…
やはり複数条件を組み合わせて弾きたいと思うのです。

引き続きお力を貸していただけると助かります。

補足日時:2006/12/21 23:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!