У нас есть сервер Apache httpd 2.4 в качестве точки входа примерно для 20 веб-сайтов, и каждый сайт имеет свою собственную конфигурацию виртуального хоста. Многие настройки, вероятно, избыточны, но это соответствует нашим потребностям. Каждый виртуальный хост перенаправляет http-трафик на страницу входа https, которая передается через приложение Tomcat. Для этого веб-сайта нет физического корневого каталога.
Мы пытаемся заблокировать бота Яндекса, который заходит на наш основной сайт каждую секунду или около того из-за перенаправления, которое генерирует уникальный URL для каждого обращения. Так как блокировка агента в .htaccess здесь невозможна, мы попытались заблокировать ЯндексБота с помощью mod_rewrite, как вы можете видеть ниже. К сожалению, это не работает, наш веб-сайт все еще атакует бот с HTTP-кодом 302, который перенаправляет на новый URL-адрес. Любые материалы будут оценены.
<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>
Это журнал, который отображается в файле access_log.
<IP-адрес> - - [27/окт/2021:11:55:49 -0400] "GET /app/...:<уникальный идентификатор>: HTTP/1.1" 302 - 69963 "-" "Mozilla/5.0 ( совместим; ЯндексБот/3.0; +http://yandex.com/bots)"