RewriteCond %{HTTP_USER_AGENT} (Google|Bing||onlytogivespace) [NC]
RewriteRule (.*) - [F,L]
Это заблокирует каждого пользовательского агента. Поскольку регулярное выражение в директиве RewriteCond
проверяет, содержит ли пользовательский агент "" (ничто), а не то, что оно равно пустой строке. Это регулярное выражение будет успешно соответствовать каждой строке / агенту пользователя, поэтому будет блокировать все.
Чтобы сопоставить пустой пользовательский агент, вам нужно изменить регулярное выражение на что-то вроде: (Google|Bing|^$|onlytogivespace)
. Обратите внимание, что ^$
соответствует пустой строке.
Дополнительные примечания:
- Вам не нужен флаг
NC
в директиве RewriteCond
. Вы знаете, что Googlebot всегда Googlebot
, а bingbot всегда bingbot
.
- Нет необходимости использовать флаг
L
в директиве RewriteRule
при использовании F
. L
подразумевается в данном случае.
(.*)
не требуется, поскольку вам не нужно явно сопоставлять URL-путь и обратная ссылка не требуется.
- Не уверен, для чего
onlytogivespace
предназначен?
Итак, это можно переписать:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (Googlebot|bingbot|^$)
RewriteRule ^ - [F]