今回の併用というのは、IP or UA ではなく IP and UA です。
両方を満たした場合のみアクセスを許可したいのです。
どなたか分かるかたご教授くださいませm(_ _ )m
ちなみに以下の例ように記述すると、IP or UAになってしまいました。
SetEnvIf User-Agent "docomo" allow_ua
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
allow from env=allow_ua
SetEnvIf を使うならこんな感じになります。 AND はどうしても回りくどくなるみたいです。
SetEnvIf User-Agent "docomo" allow_ua SetEnvIf Remote_Addr ".*" addr=deny SetEnvIf Remote_Addr "^(xxx\.xxx\.xxx\.xxx)$" addr=allow SetEnvIf addr deny !allow_ua order deny,allow deny from all allow from env=allow_ua
確か条件は複数指定可能のはず。
SetEnvIf User-Agent "docomo" allow_ua order deny,allow deny from all allow from xxx.xxx.xxx.xxx env=allow_ua
でいけると思う。
今試してみたのですが、この設定でもorになってしまっているような気がしますね。
order deny,allow deny from all allow from xxx.xxx.xxx.xxx
でIP制限を掛けた上で以下を追加するとかでどうでしょう?
RewriteEngine on RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule . - [F,L]
DoCoMo以外も許可するUAがあるならDoCoMoの部分を (DoCoMo|SoftBank|Vodafone) という感じに変えれば良いです。
うーん、そのままコピペではうまく行きませんでしたね。
下のRewiteEngine周りが全く分かってないので、ちょっと調べてみます・・・。
SetEnvIf を使うならこんな感じになります。 AND はどうしても回りくどくなるみたいです。
SetEnvIf User-Agent "docomo" allow_ua SetEnvIf Remote_Addr ".*" addr=deny SetEnvIf Remote_Addr "^(xxx\.xxx\.xxx\.xxx)$" addr=allow SetEnvIf addr deny !allow_ua order deny,allow deny from all allow from env=allow_ua
頂いたソースをちょっと編集して、やりたい事が実現できました。
ありがとうございます。
他の方の意見も参考にし、一番スマートな方法を取ろうと思います。
頂いたソースをちょっと編集して、やりたい事が実現できました。
ありがとうございます。
他の方の意見も参考にし、一番スマートな方法を取ろうと思います。