Назад | Перейти на главную страницу

как написать RewriteCond для URL с поддоменом

Я пытаюсь заблокировать некоторых ботов, написав правило 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 на случай, если будут добавлены косые черты или пути там.