我的zope网站最近被80legs.com运行的侵略性爬虫服务“攻击”,该服务在两天的时间内一再瘫痪。
我想阻止这个抓取工具(通过测试用户代理字符串),但是这个zope实例不在apache后面,因此没有.htaccess文件。 Zope确实有自己的“虚拟主机怪物”用于重写子文件夹的URL,但我找不到任何关于它是否可以在其“映射”选项卡中处理RewriteCond和RewriteRule语句的引用。
有没有人知道是否可以实现这一点,如果是这样,语法会是什么?
如果这是一个apache .htaccess文件,我会写下以下内容:
RewriteCond %{HTTP_USER_AGENT} ^80legs
RewriteRule ^.* - [F,L]
答案 0 :(得分:2)
VHM的目的只是从前端反向代理向Zope传达域名和生成的URL必须使用的初始路径。它不支持一般重写。它确实不支持基于HTTP标头的条件。
您必须编写一个Zope请求事件处理程序来根据HTTP标头更改URL。除非您准备为服务器编写新的Python包,否则这并不容易。
更简单的方法是安装nginx并让它为您处理重写,为Zope代理并保护您免受不正当行为的HTTP客户端的侵害。