block bot on uri with query_string
edogawaconan
me at myconan.net
Sun Jul 28 09:07:10 UTC 2013
On Sun, Jul 28, 2013 at 11:55 AM, ron ramos <nhadie at gmail.com> wrote:
> Hi All,
>
> Been trying to block bots from accessing a URI that has a query_string
> "action=get_it", i tried below
>
>
> location ~* \?(action=get_it)$ {
>
> if ( $http_user_agent ~
> (crawl|Googlebot|Slurp|spider|bingbot|tracker|click|parser|spider)) {
>
> return 404;
>
> break;
>
> }
>
> }
>
> i just learned that location does not match query string, if i do the is_arg
> i cant do nested if, anyone able to do this before?
>
> TIA.
>
I don't remember the exact syntax but something like this should work:
if ($arg_action = get_it) { set $no_bot 1; }
if ($http_user_agent ~ <keys>) { set $is_bot 1; }
if ($no_bot$is_bot = 11) { return 404; }
--
O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
More information about the nginx
mailing list