Para permitir allowed-domain.com
, você pode fazer algo como o seguinte:
RewriteCond %{HTTP_REFERER} !allowed-domain\.ua
RewriteCond %{HTTP_REFERER} \.ru$ [NC,OR]
RewriteCond %{HTTP_REFERER} \.ru/ [NC,OR]
RewriteCond %{HTTP_REFERER} \.ua$ [NC,OR]
RewriteCond %{HTTP_REFERER} \.ua/ [NC,OR]
RewriteCond %{HTTP_REFERER} hol\.es [NC,OR]
RewriteCond %{HTTP_REFERER} hys\.cz [NC,OR]
# A few more similar lines
RewriteCond %{HTTP_REFERER} slinqs\.com [NC]
RewriteRule ^ - [F]
O prefixo !
nega o regex e sem o sinal OR
é um AND implícito. Portanto, o acima afirma que, se o HTTP_REFERER não contiver allowed-domain.ua
e contiver .ru
ou .ua
, etc., retorne um 403 Proibido.
O sinalizador L
não é necessário ao usar o sinalizador F
(está implícito). Além disso, você não precisa de um subpadrão de captura (por exemplo, (.*)
) - já que você não o está usando.
RewriteCond %{HTTP_REFERER} \.ru$ [NC,OR] RewriteCond %{HTTP_REFERER} \.ru/ [NC,OR]
Observe que isso é o mesmo que (usando alternância):
RewriteCond %{HTTP_REFERER} \.ru(/|$) [NC,OR]
RewriteCond %{HTTP_REFERER} \.ru$ [NC,OR] RewriteCond %{HTTP_REFERER} \.ru/ [NC,OR] RewriteCond %{HTTP_REFERER} \.ua$ [NC,OR] RewriteCond %{HTTP_REFERER} \.ua/ [NC,OR]
E isso é o mesmo que:
RewriteCond %{HTTP_REFERER} \.(ru|ua)(/|$) [NC,OR]