Basta soltar os colchetes e adicionar aspas:
if ($http_user_agent ~* "morfeus fucking scanner|ZmEu") {
return 403;
}
Estou tentando negar a alguns agentes de usuário que vejo constantemente investigar meu servidor da Web nginx
.
Se eu tiver isso no meu arquivo .conf
## Block http user agent - morpheus fucking scanner ##
if ($http_user_agent ~* (morfeus fucking scanner|ZmEu)) {
return 403;
}
Eu recebo o seguinte erro ao iniciar serviços:
nginx: [emerg] invalid condition "$http_user_agent" in /etc/nginx/sites-enabled/siteXXX:19
nginx: configuration file /etc/nginx/nginx.conf test failed
Se eu colocar aspas em torno dele, ele começa, mas não nega como eu esperava.
## Block http user agent - morpheus fucking scanner ##
if ($http_user_agent ~* "(morfeus fucking scanner|ZmEu)") {
return 403;
}
Alguma ideia? Estou à procura de um agente de usuário insensível a maiúsculas negar.
qual é a string que você está tentando corresponder?
O Regex deve estar entre aspas, mas se você quiser corresponder ao símbolo especial regex (,), | - você precisa escapar com \
tente isto:
$http_user_agent ~ "(morfeus fucking scanner)|ZmEu"