方式一:直接用 Nginx 的 if 语句配合正则表达式
1 2 3 4 5 6 7 8 9
| if ($http_user_agent ~ (Antivirx|Arian)) { return 403; }
if ($http_user_agent ~* (netcrawl|npbot|malicious)) { return 403; }
|
方式二:使用 map 来代替 if 语句(适合需要禁止较多的 UA)
1 2 3 4 5 6 7 8 9 10 11 12 13
| map $http_user_agent $badagent { default 0; ~*malicious 1; ~*backdoor 1; ~*netcrawler 1; ~Antivirx 1; ~Arian 1; ~webbandit 1; }
if ($badagent) { return 403; }
|
Nginx 禁止某些UA(User Agent)访问 - 河马的深度解析