Я пытался решить это уже несколько дней, но не могу найти ответ. На общей учетной записи хостинга, которую я использую, я хотел бы изменить файл .htaccess
чтобы заблокировать некоторые боты от посещения сайта. Это код, который я использовал:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / SetEnvIfNoCase User-Agent .*dotbot.* bad_bot SetEnvIfNoCase User-Agent .*gigabot.* bad_bot SetEnvIfNoCase User-Agent .*ahrefsbot.* bad_bot <Limit GET POST HEAD> Order Allow,Deny Allow from all Deny from env=bad_bot </Limit> RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Это сайт WordPress. Как ни странно, кажется, что это просто часть блокировки бота, которая игнорируется. Я пытался использовать перенаправление 302, и он работал нормально, поэтому файл читается и обрабатывается.
Я также заметил, что этот код, похоже, работает на некоторых сайтах, но не для других. Может ли это иметь какое-то отношение к тому, что это домен аддона? Однако, похоже, что код не работает и с некоторыми первичными доменами.
Файл .htaccess
(вместе с установкой домена и wordpress) находится в home/maindomain/addondomain
а не в home/maindomain/public_html
. Существуют другие файлы .htaccess
расположенные в каталогах для других доменов, которые я там размещаю, но только те, которые находятся на том же иерархическом уровне, что и этот, например:
folder1/.htaccess folder2/.htaccess thisfolder/.htaccess
Но ни у кого из других нет строк кода, связанных с ботами, поэтому я не думаю, что от них должно быть какое-либо вмешательство.
Я также пробовал использовать другой синтаксис без успеха, например:
RewriteCond %{HTTP_USER_AGENT} .*dotbot.* [OR] RewriteCond %{HTTP_USER_AGENT} .*gigabot.* [OR] RewriteCond %{HTTP_USER_AGENT} .*ahrefsbot.* [OR] RewriteRule ^(.*)$ http://www.example.com/ [L,R=301]
Еще одна вещь, которую я пробовал, – это перемещение ботов, блокирующих части ниже кода WordPress. И я также попытался изменить размещение Rewritebase /
Я получил ответ на свой последний вопрос, говоря, что это можно сделать через robots.txt. Я бы предпочел не делать этого, потому что это победит цель, которую я пытаюсь достичь.
Другой ответ, который я получил, предложил удалить .*
До и после названий ботов. Названия, которые я перечислял, являются только частью полного имени, поэтому я думал, что буду использовать эти подстановочные знаки, или они автоматически добавляются с помощью этих команд?
Вы знаете, что можете управлять большинством этих ботов с помощью файла robots.txt ? Это гораздо лучший способ проинструктировать этих ботов не посещать определенные части вашего сайта, так как это мешает им даже пытаться получить URL-адрес, поэтому вам не нужно его блокировать.