File: //etc/apache2/custom.d/blacklist-user-agents.conf
# EDIT THIS FILE AS YOU LIKE TO OVER-RIDE, BLACKLIST OR WHITELIST
# ANY BAD USER-AGENT STRINGS YOU WANT TO SCAN FOR
# ****************************************************************************
##############################################################################
# ___ __ #
# / _ | ___ ___ _____/ / ___ #
# / __ |/ _ \/ _ `/ __/ _ \/ -_) #
# /_/ |_/ .__/\_,_/\__/_//_/\__/ #
# __/_/ __ ___ __ ___ __ __ #
# / _ )___ ____/ / / _ )___ / /_ / _ )/ /__ ____/ /_____ ____ #
# / _ / _ `/ _ / / _ / _ \/ __/ / _ / / _ \/ __/ '_/ -_) __/ #
# /____/\_,_/\_,_/ /____/\___/\__/ /____/_/\___/\__/_/\_\\__/_/ #
# #
##############################################################################
# Add One Entry Per Line - List all the extra bad User-Agents you want to permanently block or whitelist.
# You can also use this include file to over-ride user-agents like wget or curl which are previously
# white-listed in the main list. This gives you full control over what you want to allow access.
# This is for additional User-Agents that are not included in the main list of the bot blocker
# This is also used to over-ride User-Agents in the main list
# This file must exist on your system or Apache will fail a reload due to a missing file
# This allows you finer control of keeping certain bots blocked and automatic updates will
# Never be able to remove this custom list of yours
# Please note this include file loads first before any of the already whitelisted User-Agents
# in the bad bot blocker. By loading first in line it over-rides anything below it so for instance
# if you want to block Baidu, Google or Bing for any reason you add them to this file which loads
# first and takes precedence over anything below it. This now allows even finer control over the
# bad bot blocker. Enjoy !!!
# Even though this file is called blacklist-user-agents, as mentioned it can also be used to whitelist user agents
# By adding them below and setting the word bad_bot to good_bot this will permanently whitelist the User-Agent.
# Make sure any words that contain special characters are escaped and include word boundaries as per the Regex examples below.
# EXAMPLE 1: the User-Agent name "someverybaduseragentname1" is entered as "\bsomeverybaduseragentname1\b"
# EXAMPLE 2: the User-Agent name "some-very-bad-useragentname2" is entered as "\bsome\-very\-bad\-useragentname1\b"
# EXAMPLE 3: if you want to block something like wget you would add the following "\bwget\b"
# the "\b" are word boundaries which prevents partial matching and false positives.
# Follow the regex formatting examples below.
# BY DEFAULT ALL THE EXAMPLES BELOW ARE COMMENTED OUT AND HENCE NOT ENABLED
# *************************
# BLACKLIST ADDITIONAL BOTS
# *************************
#BrowserMatchNoCase "^(.*?)(\bMyVeryBadUserAgentName\b)(.*)$" bad_bot
#BrowserMatchNoCase "^(.*?)(\bMy\ Bad\ User\ Agent\b)(.*)$" bad_bot
# *************************
# WHITELIST ADDITIONAL BOTS
# *************************
#BrowserMatchNoCase "^(.*?)(\bMyVeryGoodUserAgentName\b)(.*)$" good_bot
#BrowserMatchNoCase "^(.*?)(\bMy\ Bad\ User\ Agent\b)(.*)$" good_bot
BrowserMatchNoCase "^(.*?)(\bScreaming Frog SEO Spider\b)(.*)$" good_bot
BrowserMatchNoCase "(?:\b)developers.facebook.com(?:\b)" bad_bot !good_bot
BrowserMatchNoCase "(?:\b)meta-externalagent(?:\b)" bad_bot
BrowserMatchNoCase "(?:\b)webmaster.petalsearch.com(?:\b)" bad_bot
BrowserMatchNoCase "^(.*?)(\bPetalBot\b)(.*)$" bad_bot
BrowserMatchNoCase "^(.*?)(\bpython-httpx\b)(.*)$" bad_bot
BrowserMatchNoCase "^(.*?)(\bGo-http-client\b)(.*)$" bad_bot
BrowserMatchNoCase "^(.*?)(\bIndy\ Library\b)(.*)$" !bad_bot good_bot
BrowserMatchNoCase "^(.*?)(\bGPTBot\b)(.*)$" !bad_bot good_bot
BrowserMatchNoCase "^(.*?)(\bChatGPT-User\b)(.*)$" !bad_bot good_bot
BrowserMatchNoCase "^(.*?)(\bClaudeBot\b)(.*)$" !bad_bot good_bot
BrowserMatchNoCase "^(.*?)(\bCCBot\b)(.*)$" !bad_bot good_bot
BrowserMatchNoCase "^(.*?)(\bAhrefsBot\b)(.*)$" !bad_bot good_bot