RewriteRules (assuming you have RewriteEngine On also set) work well and pretty much the same in both .htaccess files and in your virtual host configuration. The only main difference is that it works in a per-server context instead of a per-directory in your vhost config, which means that URL matches like "foo" are now "/foo" instead (note the added forward slash at the beginning, this is what most people forget about). Furthermore, the resulting path may, in a per-server context, be a full file system path instead of just a relative URI.
RewriteRule foo.bar baz.abc now becomes
RewriteRule /foo.bar baz.abc
The way the system figures out whether you are telling it to use create a rewrite to a file system path or a relative URI is by checking the first bit of the result against the file system. Thus, if you rewrite /foo to /home/foo, and /home exists on your file system, it will be treated as a file system rewrite instead of just a relative URI rewrite.
Assuming you have /home but not /img on your file system, then:
RewriteRule /index.html /home/jane/index.html <-- file system path rewrite (/home exists on file system)
RewriteRule /index.html /img/index.html <-- relative rewrite (/img does not exist on file system, so youdomain/img/index.html is the result)
I hope this answers your question