Chúng tôi có một máy chủ Apache httpd 2.4 làm điểm truy cập cho khoảng 20 trang web và mỗi trang web có cấu hình máy chủ ảo riêng. Rất nhiều cài đặt có lẽ hơi thừa nhưng nó phù hợp với nhu cầu của chúng ta. Mỗi máy chủ ảo chuyển hướng lưu lượng truy cập http đến trang đăng nhập https được ủy quyền thông qua ứng dụng Tomcat. Không có docroot vật lý cho trang web này.
Chúng tôi đang cố gắng chặn YandexBot truy cập vào trang web chính của chúng tôi mỗi giây hoặc lâu hơn do chuyển hướng tạo ra một URL duy nhất cho mỗi lần truy cập. Vì việc chặn tác nhân trong .htaccess không phải là một tùy chọn ở đây nên chúng tôi đã cố gắng chặn YandexBot bằng mod_rewrite như bạn có thể thấy bên dưới. Thật không may, điều này không hoạt động, trang web của chúng tôi vẫn đang bị tấn công bởi bot bằng mã HTTP 302 chuyển hướng đến một URL mới. Bất kỳ đầu vào sẽ được đánh giá cao.
<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>
Đây là nhật ký được hiển thị trong tệp access_log
<Địa chỉ IP> - - [27/Oct/2021:11:55:49 -0400] "GET /app/...:<id duy nhất>: HTTP/1.1" 302 - 69963 "-" "Mozilla/5.0 ( tương thích; YandexBot/3.0; +http://yandex.com/bots)"