Apache服务器禁止搜索引擎收录和网络爬虫采集的配置方法主要涉及以下几个方面:
1、通过.htaccess
文件配置
修改.htaccess
文件:在网站目录下的.htaccess
文件中添加代码,可以阻止特定UserAgent(如爬虫)访问网站,添加以下代码可以阻止包含“spider”字符的爬虫访问:
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (^$|FeedDemon|JikeSpider|Indy ) [NC] RewriteRule ^(.*)$ [F]
或者更具体地,只阻止某个特定的爬虫,如百度爬虫:
SetEnvIfNoCase UserAgent "baiduspider" bad_bot BrowserMatchNoCase bingbot bad_robot BrowserMatchNoCase Googlebot bad_robot Order Deny,Allow Deny from env=bad_robot
设置重定向规则:如果希望将爬虫请求重定向到其他页面或返回特定状态码,可以在.htaccess
中添加相应的Rewrite规则,将所有爬虫请求重定向到首页并返回403状态码:
RewriteCond %{HTTP_USER_AGENT} .*(Baiduspider|Bingbot|Googlebot|Sosospider|Sogou|YoudaoBot|Yahoo|YisooSpider|YodaoBot|AhrefsBot).* [NC,OR] RewriteRule ^(.*)$ http://www.example.com/$1 [R=403,L]
2、通过robots.txt
文件配置
创建或编辑robots.txt
文件:在网站的根目录下创建或编辑robots.txt
文件,以指定哪些搜索引擎爬虫可以访问哪些页面或目录,要禁止所有搜索引擎爬虫访问整个网站,可以添加以下内容:
Useragent: * Disallow: /
针对特定搜索引擎设置规则:如果只想禁止特定搜索引擎爬虫访问,可以在robots.txt
中为该搜索引擎设置单独的规则,只禁止百度爬虫访问整个网站:
Useragent: Baiduspider Disallow: /
3、通过Apache配置文件(如httpd.conf
)设置
修改Apache配置文件:直接在Apache的配置文件(如httpd.conf
)中设置访问控制规则,要禁止特定IP地址段的爬虫访问,可以添加以下配置:
<Location /> SetEnvIfNoCase UserAgent "spider" bad_bot BrowserMatchNoCase bingbot bad_bot BrowserMatchNoCase Googlebot bad_bot Order Deny,Allow Deny from env=bad_bot Deny from 124.115.4. 124.115.0. 64.69.34.135 216.240.136.125 218.15.197.69 155.69.160.99 58.60.13. 121.14.96. 58.60.14. 58.61.164. 202.108.7.209 </Location>
使用mod_authz_host模块:在Apache 2.4版本及以后,可以通过mod_authz_host
模块设置更复杂的访问控制,根据UserAgent设置访问权限:
<RequireAll> Require all granted Require not env bad_bot </RequireAll>
方法可以根据具体需求组合使用,以达到最佳的防护效果,建议定期检查和更新防护规则,以应对新的爬虫技术和攻击手段。