É possível, mas não há garantia de 100% de taxa de sucesso. O mais fácil seria usar o cabeçalho $ {HTTP_REFERER}. O problema é que os usuários podem desativar isso em seus navegadores e alguns bots não o enviam. Isso é mais adequado para a lógica do aplicativo usando sessões.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www\.domain\.com/?$
RewriteCond ${REQUEST_URI} !^/$
RewriteRule ^(.*)$ http://www.domain.com/ [L,R=301]
Na segunda linha, o $ é a parte importante. Ele só será igual se não houver nada após o .com ou .com / A terceira linha é apenas uma correspondência padrão para o root request_uri. Por favor, note ambas as condições têm o! operador, o que significa que se o referenciador não combina link
Tente isso e me avise.