http://www.allthingsdemocrat.com/block-bad-bots-in-htaccess.txt から:
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} http\:\/\/www\.google\.com\/humans\.txt\? [NC]
RewriteRule .* - [F,L]
</IfModule>
サイトに.htaccess全体を配置したい。
それは実際に何をしますか?
そのコードは、ボットがクエリ文字列を介してhumans.txt
をプローブするのを停止するために開発されたようです。
http://example.com/humans.txt
http://example.com/?some_path=http://www.google.com/humans.txt?
Humans.txtのブロックに関する多くのオンラインガイドに加えて、何が何をするのかを説明する多くのWebサイトがあります。貼り付けた不良ロボットリストをブロックするこれらのルールの多くは、古いか役に立たないものです。厄介なボットは、独自のユーザーエージェントを使用して自分自身を発表しません。また、.htaccess
のサイズを大きくすると、サイトの速度がわずかに低下する可能性があり、ボットをブロックすることでさえ、防止できないリクエストとして帯域幅を使用します。
一般に、多くの人が.htaccessファイル内で多くの時間を費やしているのを見る一方で、多くの場合、ファイルのアクセス許可など、他の場所でセキュリティ監査を行うのが最善です。
この行:
<IfModule mod_rewrite.c>
Mod_rewriteがApacheにインストールされているかどうかを確認し、インストールされていない場合は上記の行と...
</IfModule>
無視されます。
この行:
RewriteCond %{QUERY_STRING} http\:\/\/www\.google\.com\/humans\.txt\? [NC]
uRLに疑問符の直後にhttp://www.google.com/humans.txt
が含まれているかどうかを確認し、大文字小文字は関係ありません(NCのため)。一致する場合、次の行が実行されます...
RewriteRule .* - [F,L]
つまり、URLが次のようなものである場合:
http://example.com/a/b/cde.asp?http://www.google.com/humans.txt
F,L
フラグからのF
と、要求が.*
の正規表現と一致するため、ユーザーはアクセスを拒否されます。
Apacheは、表示されているこれらのルールを処理するときにファイルをスキャンしません。そのURLはおそらくハッカーが発明したものです。
私があなたなら、リンクをわかりやすいURL(クエリ文字列が添付されていないURL)に切り替えて、URLのどこかにHTTP://
を挿入しようとする人をリダイレクトすることですこれらのルールを介したページ:
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} (.*)http\:\/\/(.*) [NC]
RewriteRule .* - [F,L]
</IfModule>