It seems like I've managed to make it work like I wanted using this rule: * * *
# Turn rewrite engine on RewriteEngine On # Fix missing trailing slashes for foo.mydomain.com RewriteCond %{HTTP_HOST} ^foo\.mydomain\.com$ [NC] RewriteCond %{DOCUMENT_ROOT}/foo%{REQUEST_URI}/ -d RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L] # Change DocumentRoot for foo.mydomain.com RewriteCond %{HTTP_HOST} ^foo\.mydomain\.com$ RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule .* /foo%{REQUEST_URI} [QSA,L] * * * Thanks everyone for your help. On Sun, Mar 18, 2012 at 11:36 PM, Nala Gnirut <nala.gni...@gmail.com> wrote: > On Sun, Mar 18, 2012 at 11:16 PM, Eric Covener <cove...@gmail.com> wrote: > >> The P flag is explicitly used to proxy. If you want to redirect, >> substitute a full URL and use the R flag instead. >> > > I need to dynamically change DocumentRoot for some subdomains pointing to > the same local path. > > This rule works (almost) as expected, but has an issue with links to > subfolders without trailing slash: > > RewriteCond %{HTTP_HOST} ^foo\.domain\.com$ > > RewriteCond %{ENV:REDIRECT_STATUS} ^$ > RewriteRule .* /foo%{REQUEST_URI} [QSA,L] > > That is > > http://foo.domain.com/bar/ works, while > > http://foo.domain.com/bar is redirected to a wrong local path > (/foo/foo/bar instead of /foo/bar) >