一般的にhtaccessでアクセス制限を行うときは下記の2種類に別れる。
・ユーザーエージェントで携帯を弾きたい
・特定のIPアドレスからのアクセスを弾きたい
だけどまぁ時代的に今はスマフォでPCサイトを見れたりもするわけで。
元上司のブログにいやなコメントを残していくスマフォユーザーがいたらしい。
なのでユーザーエージェントだけで弾くのはまずいし、
もちろんIPアドレスで弾くのもまずい。
だけど「かつ」条件を使ったやり方がわからないとのことだったので、書いてみた。
#弾きたい機種の場合、deny_uaとして変数を作成 SetEnvIf User-Agent "機種名" deny_ua #正規表現を用いてIPアドレスを判別し、指定のIPならばdenyに SetEnvIf Remote_Addr ".*" addr=allow SetEnvIf Remote_Addr "^(xxx\.xxx\.xxx\.xxx)$" addr=deny #もしIPアドレスが指定外のものだったら、deny_uaを削除 SetEnvIf addr allow !deny_ua #env=deny_uaの場合のみ弾く order allow,deny allow from all deny from env=deny_uaこれで「ある機種」かつ「あるIP」の場合に弾く事が可能になった。
意外とhtaccessでのかつ条件って使わないと言えば使わないけど、
普通のプログラミングみたいにandとか&&があるわけではないから微妙に悩んだ。
けど考え方としては、この条件でないならば設定した変数を消すってことで問題なし。
0 件のコメント:
コメントを投稿