A diretiva location
só olha para o URI normalizado à esquerda do ?
- por isso perderá qualquer sequência ..
nos argumentos.
Se você precisar verificar o URI bruto que está sendo enviado ao servidor (incluindo argumentos), use uma expressão regular no $request_uri
.
Por exemplo:
if ($request_uri ~ \.\.) { return 403; }
Consulte esta advertência sobre o uso da diretiva if
.