1

我的 zope 网站最近被 80legs.com 运行的一个激进的爬虫服务“攻击”,在两天的时间里反复让它瘫痪。

我想阻止这个爬虫(通过对用户代理字符串进行测试)但是这个 zope 实例不在 apache 后面,所以没有 .htaccess 文件。Zope 确实有自己的“虚拟主机怪物”,用于将 url 重写到子文件夹,但我找不到任何关于它是否可以在其“映射”选项卡中处理 RewriteCond 和 RewriteRule 语句的参考。

有谁知道是否有可能实现这一点,如果可以,语法是什么?

如果这是一个 apache .htaccess 文件,我将编写以下内容:

RewriteCond %{HTTP_USER_AGENT} ^80legs 
RewriteRule ^.* - [F,L]
4

1 回答 1

2

VHM 的目的只是从前端反向代理与 Zope 通信,生成的 URL 必须使用什么域名和初始路径。它不支持一般重写。它当然不支持基于 HTTP 标头的条件。

您必须编写一个 Zope 请求事件处理程序来根据 HTTP 标头更改 URL。除非您准备为您的服务器编写一个新的 Python 包,否则这并不容易。

更简单的方法是安装 nginx 并让它为您处理重写,代理 Zope 并保护您免受行为不当的 HTTP 客户端的影响。

于 2013-09-18T21:02:51.193 回答