最近网站上,被某些爬虫占用了太大的资源,导致访问不畅,网上搜了一下禁止某些爬虫的办法。
下面这些方法需要同时实施才足够稳妥。
1.在网站根目录下修改或创建.htaccess
文件
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^YisouSpider* [NC] RewriteRule ^(.*)$ - [F,L] </IfModule> |
注意,这个过滤条件需要添加到整个.htaccess
文件的头部,否则可能由于其他的过滤条件而跳过了这个过滤条件,导致某些情况下不生效。
2.修改Apache2
的配置文件
1 |
$ vim /etc/apache2/sites-available/000-default.conf |
禁止某些User-Agent
的访问
1 2 3 4 5 6 |
<Directory "/var/www/wordpress"> SetEnvIfNoCase User-Agent ".*(YisouSpider)" denySpider Order allow,deny Allow from all deny from env=denySpider </Directory> |
注意:
1 |
env=denySpider |
中间不可用空格,否则无法成功生效。
3.网站根目录下面增加robot.txt
,禁止爬虫
1 2 3 |
#一搜的爬虫访问过于频繁 User-agent:YisouSpider Disallow:/ |
4.对于使用ProxyPass
,ProxyPassReverse
代理转发的情况
使用如下配置进行过滤
1 2 3 4 5 6 |
<Proxy "*"> SetEnvIfNoCase User-Agent ".*(YisouSpider)" denySpider Order Allow,Deny Allow from all Deny from env=denySpider </Proxy> |
注意:
1 |
env=denySpider |
中间不可用空格,否则无法成功生效。
5.验证刚刚的服务器设置是否已生效
刚刚的设置完成后,我们需要修改浏览器的User Agent
,来验证一下我们的设置是否已经生效了。
以Chrome-55.0
为例,Windows
下面按下F12
,在弹出的窗口中进行如下操作: