How ban some http-query in Apache?

November 21, 2014 1.9k 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.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!