htaccess将所有子域重写为子目录

我试图为某个域build立一个全面的子域(以前的重写规则没有被捕获),并且从位于与.htaccess文件相同的文件夹中的一个子目录提供一个网站。 我已经有我的vhosts.conf发送所有未映射的请求到一个“操场”文件夹,我想通过简单地添加一个子文件夹轻松创build新的子域名。

所以,我的结构看起来像这样:

/var/www/playground |-> /foo |-> /bar 

生活在/ playground文件夹中的.htacces和/ foo和/ bar是分开的网站。 我希望http://foo.domain.com指向/ foo,并将http://bar.domain.com指向/ bar。

这是我的.htaccess文件:

 RewriteEngine On RewriteCond %{HTTP_HOST} ^([^.]+).domain.com$ [NC] RewriteCond %{REQUEST_URI} !^/%1/(.*) RewriteRule ^(.*) /%1/$1 [L] 

这应该是捕获子域,将其添加为RewriteRule中的子文件夹,然后追加斜杠和path信息。 第二个RewriteCond是为了防止无限循环。 我的想法是,第二个RewriteCond中的%1将能够捕获第一个RewriteCond中的捕获组。 但到目前为止,我还没有取得任何成功,它总是以redirect循环结束。 如果我将第二个RewriteCond中的%1replace为硬编码的'foo'或'bar',它会起作用,这使我相信你不能引用RewriteCond中的捕获组。 是真的吗? 还是我错过了什么?

希望我能正确理解你:

 RewriteEngine On RewriteCond %{HTTP_HOST} ^([^.]+).domain.com$ [NC] RewriteCond %{REQUEST_URI} !%1 RewriteRule ^(.*)$ /%1/$1 [L]