Bloquear solicitações da Web com base em uma parte da cadeia do agente do usuário - Não está funcionando

1

Estou tentando bloquear solicitações da Web com base em se elas contiverem um grupo de strings. Tanto quanto eu posso dizer entre meu próprio conhecimento e pesquisando on-line, o que eu tenho está correto. No entanto, ainda estou vendo esses tipos de solicitações nos registros de acesso.

As entradas de log ainda seriam criadas se a solicitação fosse bloqueada na configuração do Apache? Ou o que eu tenho na minha definição VHOST está errado?

RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_USER_AGENT} ^.*(icevikatam|AhrefsBot|spbot|MJ12|majestic12|Ahrefs).*$ [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(Semrush|SISTRIX|80legs|HTTrack|Xenu|dataprovider).*$ [NC]
RewriteRule .* - [F,L]

Meu servidor web é o Apache 2.4 para IBM i.

    
por d.lanza38 12.09.2016 / 16:11

1 resposta

2

Would access log entries still be created if the request was blocked in the Apache config?

Sim, no entanto, eles devem ser registrados como 403 (Proibido) - dado o RewriteRule postado acima.

Sua regra mod_rewrite parece OK, exceto por alguns pequenos ajustes ...

^.*(icevikatam|AhrefsBot|spbot|MJ12|majestic12|Ahrefs).*$

Você não precisa das âncoras ^.* e .*$ se quiser apenas combinar essas palavras em qualquer lugar na string. O acima é o mesmo que simplesmente:

(icevikatam|AhrefsBot|spbot|MJ12|majestic12|Ahrefs)
RewriteRule .* - [F,L]

O sinal F também implica o sinal L , portanto, um sinalizador L explícito não é necessário aqui.

    
por 12.09.2016 / 16:18