Para quem usa o Apache 2.4 com hosts virtuais & querendo usar mod_rewrite dentro do vHost disse com condições de reescrita que precisam verificar arquivos ou pastas dentro do vHost, isto é como fazer as condições de reescrita ...
<VirtualHost *:80>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{CONTEXT_DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{CONTEXT_DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^(.*)$ /index.php [L]
</IfModule>
</VirtualHost>
Eu inventei isso e parece estar funcionando bem.
A explicação ...
%{CONTEXT_DOCUMENT_ROOT}%{REQUEST_URI}
fornecerá uma raiz de documento sensível ao contexto. Ou seja, a raiz do documento DEPOIS da hospedagem virtual foi aplicada. Mas isso não lhe dará o URI, então precisamos adicionar o %{REQUEST_URI}
para finalizar o trabalho.
CONTEXT_DOC_ROOT == / srv / foo / main / www
REQUEST_URI == /css/style.css
CONTEXT_DOC_ROOT + REQUEST_URI == /srv/foo/main/www/css/style.css
O resto é fácil. Molho incrível. Espero que isso ajude!