bfl*_*ra2 12 regex apache bots
我有一个apache服务器,每30分钟就会遇到大约100次点击请求匹配此模式的URL:
/neighborhood/****/feed
Run Code Online (Sandbox Code Playgroud)
这些URL过去常常包含内容并且过去是有效的.现在他们都是404,所以这个机器人每次击中我们都会杀死它.
我要将哪些内容添加到我的htaccess文件中以阻止它?
注意:僵尸程序在EC2上,因此IP地址阻止将无效.我需要阻止匹配该模式的请求.
Wil*_*III 14
使用mod_rewrite规则可以将您带到您想要的位置:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/neighborhood/[^/]+/feed$ [NC]
RewriteRule ^.*$ - [F,L]
Run Code Online (Sandbox Code Playgroud)
上面介绍了你的.htaccess文件,或者如果你想把它放在你的vhost文件中(因为你已经关闭.htaccess解析性能 - 一个好主意):
<Location />
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/neighborhood/[^/]+/feed$ [NC]
RewriteRule ^.*$ - [F,L]
</Location>
Run Code Online (Sandbox Code Playgroud)
给定/ neighborhood/carson/feed的URI,您应该期望得到如下响应:
被禁止
您无权访问此服务器上的/ neighborhood/carson/feed.
Apache/2.2.16(Ubuntu)服务器位于...端口80
这是在我在Ubuntu 10.10上运行Apache/2.2.16的本地VM上测试的.
以下代码可用于 mod_rewrite 中的 404:
RewriteRule pattern - [R=404] [other_flags]
Run Code Online (Sandbox Code Playgroud)
mod_重写?但我怀疑它可以在 apache 级别上变得更快。我会看一下 nginx 作为前端,它在 404 和规则性能方面都更有效:-)
附言。另外,您可以尝试在某个地方返回到 100Mb 文件的重定向,以取笑这些机器人:-D