我试图否认一些用户代理,我经常看到探查我的nginxnetworking服务器。
如果我在我的.conf文件中有这个
## Block http user agent - morpheus fucking scanner ## if ($http_user_agent ~* (morfeus fucking scanner|ZmEu)) { return 403; }
启动服务时出现以下错误:
nginx: [emerg] invalid condition "$http_user_agent" in /etc/nginx/sites-enabled/siteXXX:19 nginx: configuration file /etc/nginx/nginx.conf test failed
如果我在它周围加引号,它就会开始,但不会像我所期望的那样。
## Block http user agent - morpheus fucking scanner ## if ($http_user_agent ~* "(morfeus fucking scanner|ZmEu)") { return 403; }
有任何想法吗? 我正在寻找一个不区分大小写的用户代理拒绝。
只需删除括号并添加引号:
if ($http_user_agent ~* "morfeus fucking scanner|ZmEu") { return 403; }
你想匹配什么string?
正则expression式应该在引号中,但是如果你想匹配正则expression式的特殊符号(,),| – 你需要用\
试试这个: $http_user_agent ~ "(morfeus fucking scanner)|ZmEu"