如何限制用户但将机器人访问我的网站列入白名单?

如何限制用户但将机器人访问我的网站列入白名单?

我正在考虑使用 mod_evasive 和/或 mod_throttle 来防止对我的网站(运行 Apache 2.4)的滥用访问。例如,“滥用”是指使用 wget 或 HTTtrack 下载整个网站。mod_evasive 和 mod_throttle 都有方法限制用户每单位时间可以访问的页面数量。因此,例如,我可以将 IP 地址限制为每 10 分钟 5 个页面或类似的限制。

但是,我想允许搜索机器人超越这个限制。

因此,似乎有两个选择:

(1) 我可以以某种方式将页面单独提交给搜索引擎。因此,我阻止机器人访问网站,但只要页面更新,就会明确向他们发送页面(我可以这样做吗?)。

(2)以某种方式将特定机器人列入白名单。这里的问题是我无法提前知道机器人的 IP 地址。

应该使用什么方法?

答案1

白名单不需要基于 IP。mod_qos 可以进行基于用户代理的匹配。

这虽然不能阻止任何人假装是 googlebot,但会减慢那些不从 wget 进行更改的人的速度。

如果下载量仍然过大,请尝试通过分析请求日志来检测欺骗性用户代理。使用网站管理员工具和搜索引擎的已知 IP 地址。您花在这上面的时间取决于您的网络服务器资源有多宝贵,以及您希望在多大程度上避免整个网站被镜像。

相关内容