Я пытаюсь заблокировать веб-запросы на основе того, содержат ли они какую-либо группу строк. Насколько я могу судить между своими знаниями и поиском в Интернете, то, что у меня есть, верно. Однако я все еще вижу такие типы запросов в журналах доступа.
Сохранятся ли записи в журнале доступа, если запрос был заблокирован в конфигурации Apache? Или я ошибаюсь в определении VHOST?
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]
Мой веб-сервер - Apache 2.4 для IBM i.
Сохранятся ли записи в журнале доступа, если запрос был заблокирован в конфигурации Apache?
Да, однако, они должны регистрироваться как 403 (Запрещено) - учитывая RewriteRule
размещено выше.
Ваше правило mod_rewrite выглядит нормально, за исключением нескольких незначительных изменений ...
^.*(icevikatam|AhrefsBot|spbot|MJ12|majestic12|Ahrefs).*$
Вам не нужен ^.*
и .*$
якоря, если вы просто хотите сопоставить эти слова везде в строке. Вышеупомянутое то же самое, что просто:
(icevikatam|AhrefsBot|spbot|MJ12|majestic12|Ahrefs)
RewriteRule .* - [F,L]
В F
флаг подразумевает в L
флаг, поэтому явный L
флаг здесь не требуется.