| From | Sent On | Attachments |
|---|---|---|
| karabaja | May 31, 2011 11:49 am | |
| António P. P. Almeida | May 31, 2011 12:04 pm | |
| Alexandr Gomoliako | May 31, 2011 12:18 pm | |
| Igor Sysoev | May 31, 2011 12:34 pm | |
| Alexandr Gomoliako | May 31, 2011 1:34 pm | |
| António P. P. Almeida | May 31, 2011 2:03 pm | |
| Alexandr Gomoliako | May 31, 2011 2:27 pm | |
| karabaja | May 31, 2011 3:00 pm | |
| António P. P. Almeida | May 31, 2011 3:25 pm | |
| António P. P. Almeida | May 31, 2011 3:31 pm | |
| karabaja | May 31, 2011 3:44 pm | |
| António P. P. Almeida | May 31, 2011 3:57 pm | |
| Igor Sysoev | Jun 1, 2011 12:24 am | |
| Igor Sysoev | Jun 1, 2011 12:27 am | |
| Hari Hendaryanto | Jun 1, 2011 1:41 am | |
| Igor Sysoev | Jun 1, 2011 1:47 am |
| Subject: | Re: Blocking by user agent if ip doesn't match | |
|---|---|---|
| From: | Igor Sysoev (ig...@sysoev.ru) | |
| Date: | May 31, 2011 12:34:07 pm | |
| List: | ru.sysoev.nginx | |
On Tue, May 31, 2011 at 10:19:13PM +0300, Alexandr Gomoliako wrote:
On 5/31/11, karabaja <ngin...@nginx.us> wrote:
syntax would be in nginx config or if it is even possible to match both statements.
It is possible and there are different ways to match two conditions. I like this one:
geo $google { default 0; 66.0.0.0/8 1; } map $http_user_agent $googlebot { default 0; ~google $google; }
server { location / { if ($googlebot) { ... } } }
It works since 0.9.6. I'm going to change case sensitivity like this
~Google # case sensitive ~*google # case insensitive
Expression compatible with old and new syntax (for gracefull upgrade):
~(?i)google # case insensitive
As to configuraiton it's better to use this logic:
geo $not_google { default 1; 66.0.0.0/8 0; }
map $http_user_agent $bots { default 0; ~(?i)google $not_google; "~(?i)(Purebot|Lipperhey|MaMaCaSpEr|libwww-perl|Mail.Ru|gold crawler)" 1; }
server { location / { if ($bots) { return 403; } } }
-- Igor Sysoev
_______________________________________________ nginx mailing list ngi...@nginx.org http://nginx.org/mailman/listinfo/nginx





