Search code examples
.htaccessblockbots

htaccess block *bot and bot*


I'm having trouble blocking two bad bots that keep sucking bandwidth from my site and I'm certain it has something to do with the * in the user-agent name that they use.

Right now, I'm using the following code to block the bad bots (this is an excerpt)...

# block bad bots
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^spider$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^robot$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^crawl$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^discovery$
RewriteRule .* - [F,L]

When I try to do RewriteCond %{HTTP_USER_AGENT} ^*bot$ [OR] or RewriteCond %{HTTP_USER_AGENT} ^(*bot)$ [OR] I get an error.

Guessing there is a pretty easy way to do this that I just haven't found yet on Google.


Solution

  • An asterisk (*) in a regular expression pattern needs to be escaped, since it is being interpreted as part of the regular expression.
    RewriteCond %{HTTP_USER_AGENT} ^\*bot$
    should do the trick.