RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?abc.com.*$ [NC]
RewriteRule (.*)
http://www.mydomain.com/index-abc.html [R=permanent,L]
take out the exclamation point before ^http... Right now you are telling your server to redirect everyone that ISN'T from that domain to the page you meant for that domain. (!=NOT)