Я пытаюсь заблокировать некоторых ботов, написав правило RewriteCond в файле htaccess. Правильный ли следующий набор правил, если я добавлю следующее:
## block traffic from particular referrers
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(www\.)?example-subdomain.parent.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?example-2-domain.net [NC]
RewriteRule (.*) - [F]
Как видите, я хочу банить по доменному имени, а не по IP-адресу. Можно ли удалить часть (www.)?
Обновление: мой вопрос в основном связан с правильным синтаксисом RewriteCond для URL-адресов.
Спасибо
Если вы знаете родительский домен и хотите заблокировать его и все его поддомены:
^https?://([^.]+\.)*exampledomain\.com
Да. Вы можете заменить "http: // (www \.)? "с". * "при условии, что вы не ожидаете, что это доменное имя появится где-либо еще в законных строках реферала. Я также предлагаю поставить. * после .com или .net на случай, если будут добавлены косые черты или пути там.