Se você redirecionou para uma página diferente no mesmo domínio e seguiu os exemplos acima, isso causará um loop direto. Então, no seu arquivo de configuração nginx, use como segue (eu suponho que você use o wordpress como é amplamente utilizado)
geo $bad_user {
default 0;
1.2.3.4/32 1;
4.3.2.1/32 1;
}
server {
location /
{
if ($bad_user) {
rewrite ^ http://www.example.com/warning-page/ break;
}
try_files $fullurl${request_uri}index.html $uri $uri/ /index.php$is_args$args;
}
location /warning-page/
{
try_files $fullurl${request_uri}index.html $uri $uri/ /index.php$is_args$args;
}
}
Agora, se alguém do ip da lista negra visitar qualquer página, exceto a página de aviso não listada no site, ela será redirecionada para a página de aviso. já que a reescrita está no local / bloco, não causará um loop de redirecionamento. No entanto, se estiver dentro do bloco do servidor, isso causará um loop de redirecionamento.