htaccess拒绝所有IP引用

时间:2013-12-15 03:23:47

标签: .htaccess mod-rewrite ip

我的网站受到来自IP地址的请求的轰炸。

  

[Sat Dec 14 22:03:14 2013] [错误] [客户XXX.XX.XX.XX]客户拒绝   通过服务器配置:/ home / user / public_html / folder / folder /,   referer:http://XXX.XXX.XXX.XXX/

你看到推荐人不是像合法推荐那样的域名,而是来自IP,它会轰炸我的网站数千次。我已经阻止了IP地址和类似的地址:

RewriteCond %{HTTP_REFERER} XXX\.XXX\.XXX [NC]
RewriteRule .* - [F] 

但是如何阻止来自IP地址的所有推荐人?就我的网站而言,绝大多数用户如果不是每个用户都会从域名访问我的网站,请参阅IP地址。只有具有恶意意图的访问者才能通过IP参考,因为我现在正在体验。

RewriteCond %{HTTP_REFERER} *\.*\.* [NC]
RewriteRule .* - [F] 

我试过这个想它会起作用,但事实并非如此。我想也许这对于每组数字都是一张外卡。但它在日志中出现了大量错误......

1 个答案:

答案 0 :(得分:1)

如果要匹配任何形成为ip地址的字符串,它将类似于

[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1-3}\.[0-9]{1,3} 

正则表达式为“1到3位,四次,以句点分隔”。显然你可以只测试三组数字,但这是一般的想法。 [0-9]的简写是\d“任何数字” - 由于前三个组相同(最多三个数字后跟句点),您可以通过对表达式进行分组来使表达式更紧凑。

这意味着你可能想尝试这个

RewriteCond %{HTTP_REFERER}  (\d{1,3}\.){3}\d{1,3}  [NC]
RewriteRule .* - [F]