文字列のグループのいずれかが含まれているかどうかに基づいて、Webリクエストをブロックしようとしています。私自身の知識とオンライン検索の間で私が知る限り、私が持っているものは正しいです。ただし、これらのタイプのリクエストはまだアクセスログに表示されています。
リクエストが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]
私のWebサーバーはIBMi用のApache2.4です。
リクエストがApache構成でブロックされた場合でも、アクセスログエントリは作成されますか?
はい。ただし、上記のRewriteRule
を前提として、403(禁止)としてログに記録する必要があります。
Mod_rewriteルールは、いくつかの小さな調整を除いて、問題ないように見えます...
^.*(icevikatam|AhrefsBot|spbot|MJ12|majestic12|Ahrefs).*$
文字列内のこれらの単語anywhereに一致させたい場合は、^.*
および.*$
アンカーは必要ありません。上記は単純に同じです:
(icevikatam|AhrefsBot|spbot|MJ12|majestic12|Ahrefs)
RewriteRule .* - [F,L]
F
フラグimpliesL
フラグもあるため、ここでは明示的なL
フラグは必要ありません。