Как заблокировать определенный URL в веб-сервере NGINX - PullRequest
0 голосов
/ 16 декабря 2018

Я хочу заблокировать определенный URL-адрес, но я не могу сделать это:

URL-адрес, который должен быть заблокирован example.com/clientarea/?dxx_g=dddd Но следующий URL-адрес все еще должен работать в качестве примера.com / clientarea

Я попробовал следующее:

location ^~ /clientarea/ {
  return 444;
}

Но если я сделаю это, он заблокирует все соединения с / clientarea

Я надеюсь, что вы можете мне помочь или посоветоватьмне, как сделать это возможным

1 Ответ

0 голосов
/ 16 декабря 2018

Операторы location и rewrite проверяют нормализованный URI, который не включает ? и все, что следует за ним.

Переменная $request_uri содержит весь URI.Протестируйте эту переменную, используя директиву if или map.

Например:

if ($request_uri = /clientarea/?dxx_g=dddd) {
    return 444;
}

Вы также можете использовать регулярные выражения.См. этот документ для получения дополнительной информации.См. это предупреждение об использовании if.

Если у вас есть несколько URI для блокировки, вам следует рассмотреть , используя вместо этого map.

...