私の訪問のほとんどは白頭spからです。私はそれが検索エンジンにまったく役立つとは思わないので、それらをブロックする方法を考えています。これはiptablesを介して実行できますか? Webサーバーとしてnginxを使用しています。
Robots.txtに追加します
#Baiduspider
User-agent: Baiduspider
Disallow: /
#Yandex
User-agent: Yandex
Disallow: /
中国の検索ボットBaiduspider
が私のサイトのコンテンツにアクセスするのをブロックしました。以下の理由により、そうすることを決定しました。
ブロックを決定する理由
だから、Su 'やXenophobiaに関心のある人たちが、この決定が無礼な数のリクエストに対する冷静な対応であることを理解してくれることを願っています。
方法
Baiduspiderは多くの異なるIPアドレスを使用してサーバーにアクセスしますが、これらのアドレスは特定の範囲内にあります。したがって、私の.htaccessファイルには次の行が含まれるようになりました。
order allow,deny
allow from all
# Block access to Baiduspider
deny from 180.76.5.0/24 180.76.6.0/24 123.125.71.0/24 220.181.108.0/24
一番下の行は、基本的に、Baiduspiderを知っている4つのIP範囲を示しており、Baiduspiderのみがサーバーにアクセスします。 4つの範囲はそれぞれ256個の連続したアドレス(合計1024個)です。 CIDR範囲を読み取っていない場合、deny from...
行のIP範囲の構文は非常に混乱しやすいことに注意してください。 0/24
は0から始まる256サイズの範囲を意味するので、180.76.5.0/24
は実際に180.76.5.0
と180.76.5.255
の間のすべてのIPアドレスを意味することを理解してください。ええ、特に明白ではありません!しかし、理由を知りたい場合、または混乱を感じるだけの場合は、 http://www.mediawiki.org/wiki/Help:Range_blocks にアクセスしてください。
概要
インターネットは無料で、オープンで、公正でなければなりません。しかし、それは、Baiduのような組織がRobots.txtに従うことを学習し、クロールの規則性にあまり貪欲でないことを意味します。私の解決策は、非常に強力な設定をいじくり回すことを伴うため、.htaccessファイルをいじる前に、元のファイルをバックアップしてください。ご自身の責任で進めてください。
robots.txt
で次のディレクティブを使用して、サイトのクロールを禁止できます。
# robots.txt
User-agent: Baiduspider
Disallow: /
ただし、クローラーmayはrobots.txtのコンテンツを無視することを決定します。さらに、ファイルは検索エンジンでキャッシュでき、変更が反映されるまでに時間がかかります。
最も効果的なアプローチは、サーバー機能を使用することです。次のルールをnginx.conf
ファイルに追加して、サーバーレベルでバイドゥをブロックします。
if ($http_user_agent ~* ^Baiduspider) {
return 403;
}
変更を適用するために、Nginxを再起動またはリロードすることを忘れないでください。
Baiduからのトラフィック量は攻撃的なスキャンには無視できるほど大きかったため、Baiduをブロックすることにしました。さらに、ブラウザを偽装してJavaScriptコード(Googleアナリティクスなど)を起動し、統計情報を台無しにするエージェントを実行するようになりました。
Niceバージョンでは、次のようにrobots.txtを更新しています
User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-video
Disallow: /
User-agent: Baiduspider-image
Disallow: /
しかし、他の人がここに書いたものと、彼らの存在を隠すユーザーエージェントを使用しているものを考慮して、私は彼らのIPアドレスを完全にブロックします。以下はnginxでどのように行われるかです
# Baidu crawlers
deny 123.125.71.0/24;
deny 180.76.5.0/24;
deny 180.76.15.0/24;
deny 220.181.108.0/24;
Wordpressソリューション(最適ではありませんが役立ちます)
Biaduスパイダーでも同じ問題がありました。これは、私のボックスがtopを使用してコンソールで35以上にランクされたことを示しています。明らかに、高速のコンピューターでさえ、35 ....
私はIPの数(その大学の建物から????)を数百、主に2つのユーザーエージェントで追跡しました)
直接的な結果?クラウドサーバーを持っているので、応答を低下させるために同じものをより高いメモリにアップグレードする必要がありました。
前の答え:
#Baiduspider
User-agent: Baiduspider
Disallow: /
Baiduはrobot.txtの指示を完全に尊重できないようです。
Wordpress(無料)用のWP-Banプラグインをインストールし、以下を禁止しました:
ユーザーエージェント:
Baiduspider+(+http://www.baidu.com/search/spider.htm)
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
さらに、Wp Super Cacheを使用して、相対エラーページのアドレスを静的ページに変更します。したがって、wordpressインストール全体では、MySQLデータテーブルをチェックすることはできません。
(これは標準のWordpress blablablaであるため、この手順ではコーディングやFTPアクセスが必要ないため、Wordpressプラグインをインストールできる人は誰でもインストールできます)
私はみんなに同意します:インターネットは無料で、誰でも絶対に最後にすべきことを禁止していますが、バイドゥは今日、ポルトガルで書かれたウェブサイドをスパイダーするだけで、毎月40米ドルの費用がかかります。多くの中国人と訪問者がこの言語を読んで理解することができます。
.htaccessを使用する
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Baidu [NC]
RewriteRule .* - [L,F]
[RewriteEngine On]を使用すると、次の行が正しく解析されます。 HTTP_USER_AGENTは、スパイダーが自分自身を識別する行です。行に「MJ12bot」または「Baidu」が含まれている場合、条件は真です。 NCは「大文字と小文字を区別しない」ことを意味し、ORで条件を連鎖できます。最後の行に「OR」を含めることはできません。そうしないと、ルールが機能しません。
Baiduは、Wordpressエントリ( "fckeditor"、 "wp-content")を読み取ろうとするため、特に理由がありません。 MJ12botも悪い生き物の1つです。
書き換えルールは、403 Forbidden([F])でスパイダーをブロックしてすべてのファイル(。*は任意のファイルの正規表現)にアクセスし、htaccessのさらなる評価([L])を停止することを意味します。