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]