在CentOS上配置Apache服务器以防止爬虫访问,可以通过以下几种方法实现:
mod_rewrite
模块启用mod_rewrite
模块:
sudo yum install mod_rewrite
sudo systemctl restart httpd
编辑Apache配置文件:
打开你的网站配置文件,通常位于/etc/httpd/conf/httpd.conf
或/etc/httpd/conf.d/yourdomain.conf
。
添加mod_rewrite
规则:
在<Directory>
或<Location>
块中添加以下内容:
<Directory "/var/www/html">
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} badbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} crawler [NC,OR]
RewriteCond %{HTTP_USER_AGENT} spider [NC]
RewriteRule .* - [F,L]
</Directory>
这里的badbot
, crawler
, spider
是示例用户代理字符串,你可以根据需要替换为实际的爬虫用户代理。
重启Apache服务:
sudo systemctl restart httpd
mod_security
模块安装mod_security
:
sudo yum install mod_security
sudo systemctl restart httpd
启用mod_security
:
编辑/etc/httpd/conf.d/mod_security.conf
文件,确保以下行未被注释:
IncludeOptional /etc/httpd/conf.d/*.conf
添加防盗爬规则:
在/etc/httpd/conf.d/userdata/std/2_4/yourdomain.conf
文件中添加以下内容:
SecRule REQUEST_URI "@rx /sensitive-page" \
"id:1234567,\
phase:2,\
deny,\
status:403,\
log,\
msg:'Access to sensitive page is blocked'"
这里的/sensitive-page
是你希望保护的页面路径。
重启Apache服务:
sudo systemctl restart httpd
你也可以考虑使用第三方防盗爬插件,如Cloudflare
或Sucuri
,这些插件提供了更高级的防盗爬功能,包括IP黑名单、验证码等。
通过以上方法,你可以有效地防止爬虫访问你的CentOS Apache服务器上的敏感内容。