全局阻止特定用户代理

时间:2015-10-21 12:45:18

标签: apache nginx cpanel whm

我曾经通过 nginx 手动管理我的所有网络服务器。

我现在正在使用 cPanel ,并希望阻止特定用户代理访问我服务器上的任何网站。

这在nginx中是多么容易。

 if ($http_user_agent ~* "PHP|curl|Wget|HTTrack|Nmap|Verifying|PingBack|Pingdom|Joomla|Wordpress") { return 444; }
 if ($http_user_agent = "") { return 444; }
 if ($http_user_agent = " ") { return 444; }
 if ($http_user_agent = "-") { return 444; }

如何为我的所有网站复制相同的效果,包括 WHM(apache)的主要网络服务器。

看起来像一个简单的请求,但几乎没有关于此的文档。

1 个答案:

答案 0 :(得分:0)

如果您使用map在http级别设置$ drop_agent变量,那么它将对您的所有服务器都可用。用户代理匹配也可以放入包含的文件。

map $http_user_agent $drop_agent {
    default 0;
    ~^libwww-perl$  1;
}

然后在每个服务器节中:

if ($drop_agent) {
#   return 403; # for testing 
    return 444;
}