I am trying to do this type of mod_rewrite:

*if request_uri isn't abc or def* change client side url from

domain.com/request_uri

to server side url

domain.com/xyz/request_uri

Basically things i want would be to place a string to some url without customers understanding if s/he is not attempting to access certain predefined web addresses.

To date I've

RewriteCond %{REQUEST_URI} ^/abc$
RewriteRule ^(\w+)/?$ xyz/$1 [L]

but this appears to really go to town a loop (/abc//abc//abc...)

Give a condition to check on for that component you are adding. You should use one more RewriteCond or extend the regex. Try something similar to:

RewriteCond %{REQUEST_URI} !^/?(xyz(/.*)|abc|def)/?$
RewriteRule ^(\w+)/?$ xyz/$1 [L]