我想阻止网络爬虫使用配置为将所有请求转发到 ProxyPass 的 Apache 站点。我尝试使用 BrowserMatchNoCase 指令来设置环境变量 block_spider。当我将 Web 浏览器中的用户代理更改为伪装成搜索机器人时,它仍然允许我访问该站点。
BrowserMatchNoCase "^bingbot" block_spider
BrowserMatchNoCase "^msnbot" block_spider
<Proxy *>
Order deny,allow
Deny from env=block_spider
Allow from all
</Proxy>
RewriteEngine On
RewriteOptions Inherit
答案1
这真是令人尴尬。我一直以为“拒绝、允许”的顺序意味着列表被视为 ACL 或防火墙规则,但事实并非如此。最后一条规则是“允许所有人”,它覆盖了我拒绝的所有内容。正确的配置是这样的:
BrowserMatchNoCase "^bingbot" block_spider
BrowserMatchNoCase "^msnbot" block_spider
<Proxy *>
Order Allow,Deny
Allow from all
Deny from env=block_spider
</Proxy>