Задать вопрос
@redcap152

Как заблокировать запросы по User-Agent через .htaccess?

Здравствуйте! Поместил в .htaccess правила, блокирующие запросы от определённых User-Agent'ов. Многострочная конструкция (нижняя) работает, а сокращённая, содержащая регулярные выражения, не работает, т.е. вызывает ошибку 404 для любого User-Agent. В чём может быть причина?

#Эта конструкция не работает - вызывает ошибку 404, когда заходишь на сайт для всех User-Agent.
RewriteCond %{HTTP_USER_AGENT} [SolomonoBot|HaosouSpider|MJ12Bot|AhrefsBot|SemrushBot|360Spider]
RewriteRule ^.*$ - [R=404,L]


#А эта конструкция работает, но она слишком большая. Что я делаю не так?
RewriteCond %{HTTP_USER_AGENT} HaosouSpider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} AhrefsBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} SemrushBot
RewriteCond %{HTTP_USER_AGENT} 360Spider [NC,OR]
RewriteRule .* - [R=404,L]

#Вот так всё работает
RewriteCond %{HTTP_USER_AGENT} (SolomonoBot|HaosouSpider|MJ12Bot|AhrefsBot|SemrushBot|360Spider)
RewriteRule ^.*$ - [R=404,L]
  • Вопрос задан
  • 6770 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
alsopub
@alsopub
Попробуйте круглые скобки вместо квадратных.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Neocaridina
@Neocaridina
самый скромный
SetEnvIfNoCase User-Agent "ahrefs.com" bad_bot
SetEnvIfNoCase User-Agent "megaindex.ru" bad_bot
SetEnvIfNoCase User-Agent "Java/1." bad_bot
SetEnvIfNoCase User-Agent "linkpad.ru" bad_bot
<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы