Avem un server Apache httpd 2.4 ca punct de intrare pentru aproximativ 20 de site-uri web și fiecare site are propria sa configurație virtualhost. O mulțime de setări sunt probabil redundante, dar se potrivește nevoilor noastre. Fiecare gazdă virtuală redirecționează traficul http către o pagină de conectare https care este trimisă prin proxy printr-o aplicație Tomcat. Nu există docroot fizic pentru acest site web.
Încercăm să blocăm un YandexBot care lovește site-ul nostru principal în fiecare secundă sau cam asa ceva din cauza redirecționării care generează o adresă URL unică pentru fiecare accesare. Deoarece blocarea agentului din .htaccess nu este o opțiune aici, am încercat să blocăm YandexBot cu mod_rewrite, așa cum puteți vedea mai jos. Din păcate, acest lucru nu funcționează, site-ul nostru este încă lovit de bot cu un cod HTTP 302 care redirecționează către o nouă adresă URL. Orice contribuții ar fi apreciate.
<VirtualHost *:443>
ServerName mywebsite.com
ServerAlias *.mywebsite.com
...
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Yandex [NC]
RewriteRule ^ - [F,L]
RewriteRule ^/$ https://%{SERVER_NAME}/app/... [R,L]
...
<Location /app/>
Require all granted
RequestHeader unset Origin
ProxyPreserveHost On
ProxyPass http://127.0.0.1:8080/app/...
...
</Location>
...
</VirtualHost>
Acesta este jurnalul care este afișat în fișierul access_log
<adresă IP> - - [27/oct/2021:11:55:49 -0400] „GET /app/...:<id unic>: HTTP/1.1” 302 - 69963 „-” „Mozilla/5.0 ( compatibil; YandexBot/3.0; +http://yandex.com/bots)"