This is the recent requirement that i had faced w.r.t. virtual hosts.
- at a given location see if the static resource exist
- if it exist then serve form that location
- otherwise fallback to a default location
after a day of investigation… this was the solution i finally discovered
NameVirtualHost *:81
#telling virtual host to listen on this port
<VirtualHost *:81>
ErrorLog logs/rewrite-log
CustomLog logs/rewrite-log combined
DocumentRoot E:/proj/nono2_2_10_3/config/
LogLevel debug
<IfModule rewrite_module>
RewriteLog logs/rewrite.log
RewriteLogLevel 3
</IfModule>
RewriteEngine on
#if the file at the below path doesnt exist then the rule applies. Both these are part of the same rule
RewriteCond %{DOCUMENT_ROOT}httpd/templates-mobile/js/$3 !-f
#rule is to serve the files from default templates folder and skip the next rule (see s=1). Make this rule as the last rule(see L)
#note the $1,$2,$3 are interpreted from he below rule. Each ‘()’ represents $n. where n increments per bracket
# the above rewriteCond take $1,2,3 from this rule below
RewriteRule ^(/ui)(/tpl/js)(.+)$ %{DOCUMENT_ROOT}httpd/templates/js/$3 [L,S=1]
#serve from templates-mobile folder
RewriteRule ^(/ui)(/tpl/js)(.+)$ %{DOCUMENT_ROOT}httpd/templates-mobile/js/$3 [L]
</VirtualHost>
Hope this helps somebody…