How ban some http-query in Apache?

November 21, 2014 1.6k views

I have a problem - some application sends too many queries to my API (works by http). I have forbidden it in php and in .htaccess:
RewriteCond %{QUERY_STRING} apikey=23e8a4dccbcfae76f73292fd5cc13f84 [NC]
RewriteRule ^.*$ - [F,L])

But it doesn't help. So my apache2/access.log has very-very big size and it leads to the lack of free space on server.
Can I ban this query in Apache and how can I do it?

Queries are sent from the different ip-addresses and rarely (from one ip), so banning them by IP or by time limit won't help...

2 Answers

You'll need to set RewriteEngine on before it will work. I would write it like this:

        RewriteEngine on
        RewriteCond %{QUERY_STRING} ^(.*)23e8a4dccbcfae76f73292fd5cc13f84(.*)$
        RewriteRule .* - [F]

Thank you, but I needed block this URL in iptables.
If somebody has the same problem, read this article

Have another answer? Share your knowledge.