web-dev-qa-db-fra.com

Baiduspider explore mon site même lorsque le fichier robots.txt l'interdit, comment puis-je l'empêcher?

Mon site a un trafic important parce que certains bot. J'ai vérifié access_log, certains bot Baiduspider vont sur mon site 10-20 fois par minute. Je n'ai pas besoin du trafic chinois. J'ai cherché et lu http://www.baidu.com/search/robots_english.html

J'ai ajouté la règle dans le fichier robots.txt puis j'ai redémarré Aache, mais cela ne fonctionne pas. Baiduspider explore toujours mon site.

User-agent: Baiduspider
Disallow: /

User-agent: *
Disallow: /feed/
Disallow: /trackback/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /xmlrpc.php

J'ai trouvé leur page de commentaires http://zhanzhang.baidu.com/feedback/index Je peux traduire la page dans ma langue, mais je ne peux pas traduire et insérer un captcha.

Ensuite, j'ai cherché et trouvé un article: http://www.askapache.com/htaccess/blocking-bad-bots-and-scrapers-with-htaccess.html Mais quand je l'ajoute à .htaccess, je ne peux pas accéder à mon site, (vous n'êtes pas autorisé à accéder à ce site) Suis-je inséré dans une mauvaise position? besoin d'aide.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_USER_AGENT} ^Baiduspider.* [NC,OR]
RewriteRule ^.* - [F,L]

#some custom rewrite rule
RewriteRule ^article/([^/\.]+)/?$ /article/$1.php [L,QSA]

RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

BTW, mon serveur est CentOS7 Apache 2.4.6. J'ai aussi essayé "httpd.conf", mais je n'ai jamais trouvé d'article sur Apache 2.4.6 <IfModule setenvif_module>, tous les articles sont <IfModule mod_setenvif_c>... Apache 2.4.6 annule la règle order allow,deny. , Je ne sais pas comment modifier et ajouter dans mon httpd.conf.

En tout cas, je veux juste refuser Baiduspider Merci.

1
yuli chika

Vous pouvez essayer de bloquer des adresses IP spécifiques dans votre fichier .htaccess. Vous pouvez trouver les plages ici .

Dans le fichier robots.txt, vous pouvez également ajouter les éléments suivants:

User-agent: Baiduspider
User-agent: baiduspider
User-agent: Baiduspider+ 
User-agent: Baiduspider-video
User-agent: Baiduspider-image
Disallow: /

De plus, si vous utilisez des plugins de mise en cache ou un CDN, veillez à vider tout votre cache.

1
dasickle

Je pense que le problème avec votre règle de réécriture est le drapeau OR. Ce drapeau signifie généralement qu'une deuxième condition de réécriture est imminente. Vous n'avez qu'une seule condition.

Voici un site qui fournit une règle similaire pour bloquer BaiduSpider avec une syntaxe légèrement différente:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Baiduspider.* [NC]
RewriteRule .* - [F]
3