Estamos verificando alguns remetentes com spam em nossa configuração nginx e queremos redirecionar suas solicitações para nossa página inicial. O problema é que o nginx está passando ao longo do referenciador original como parte do redirecionamento, e assim quando a requisição redirecionada entra, o referenciador ruim ainda está presente e o nginx emite outro redirecionamento. Exemplo:
Links de sites inválidos para example.com/page.html
. Redirecionamos essa solicitação para example.com
porque não queremos que os maus referenciadores enviem tráfego para nossas páginas. O problema é que, quando o nginx recebe a solicitação para example.com
, esse referenciador ruim ainda está presente e, assim, o nginx emite outro redirecionamento, e assim por diante, para o infinito. Como posso limpar o referenciador original ao emitir um redirecionamento do nginx?
Aqui está o bloco relevante que estamos usando. Preenchemos $bad_referer
com map
na seção http da nossa configuração.
if ($bad_referer) {
return 302 http://www.example.com;
}
Tags nginx