# SOFTACULOUS Block author scans RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} (author=\d+) [NC,OR] RewriteCond %{REQUEST_URI} ^.*wp-json/wp/v2/users(?!/me) [NC] RewriteRule .* - [F,L] # SOFTACULOUS Block author scans End DirectoryIndex index.php index.html Order allow,deny Deny from all Order allow,deny Allow from all RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # BEGIN WordPress # The directives (lines) between "BEGIN WordPress" and "END WordPress" are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten. RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress # SOFTACULOUS Block xmlrpc Require all denied # SOFTACULOUS Block xmlrpc End # SOFTACULOUS Block .htaccess and .htpasswd Require all denied # SOFTACULOUS Block .htaccess and .htpasswd End # SOFTACULOUS Block directory browsing Options -Indexes # SOFTACULOUS Block directory browsing End # SOFTACULOUS Block access sensitive files Require all denied # SOFTACULOUS Block access sensitive files End # SOFTACULOUS Enable bot protection RewriteEngine on RewriteCond %{HTTP_USER_AGENT} (?:virusbot|spambot|evilbot|acunetix|BLEXBot|domaincrawler\.com|LinkpadBot|MJ12bot/v|majestic12\.co\.uk|AhrefsBot|TwengaBot|SemrushBot|nikto|winhttp|Xenu\s+Link\s+Sleuth|Baiduspider|HTTrack|clshttp|harvest|extract|grab|miner|python-requests) [NC] RewriteRule ^(.*)$ http://no.access/ # SOFTACULOUS Enable bot protection End