15

次のコードを配置すると、ボットとして識別されるすべての http_user_agents をブロックしたいが、Googlebot は許可します。

map $http_user_agent $bad_bot {
default 1;
~*^Lynx 0; # Let Lynx go through
~*^google );
libwww-perl                      1;
~(?i)(libwww|Wget|LWP::Simple|BBBike|java|crawl|spider|bot) 1;
}

ただし、これにより googlebot へのアクセスもブロックされます。

4

2 に答える 2

24

$http_user_agent$bad_bot リストをチェックして、ブラックリストにある場合はHTTP 403を返します。

location / {
   if ($http_user_agent ~ (libwww|Wget|LWP|damnBot|BBBike|java|spider|crawl) ) {
       return 403;
   }
}

注: if ブロックでは、大文字と小文字を区別する一致が実行~されます。ブラックリストで大文字と小文字を区別しないようにする場合は、代わりに.~*~

于 2013-10-12T22:25:02.090 に答える