Apache mod_rewrite um subdomínio para uma subpasta (via redirecionamento interno)

Eu estou tentando escrever um conjunto de regras mod_rewrite que permitem aos meus usuários utilizar uma única pasta para fazer o desenvolvimento em projetos diferentes, e não ter que mexer com a adição de vhosts para cada projeto.

Minha idéia para conseguir isso, é configurar um "Global VHost" para cada usuário que precisa dessa habilidade (apenas 3-4), o vhost seria algo como: .my-domain.com. De lá, quero promover meus usuários a escrever código como se estivessem em um domínio e não em uma subpasta. Por exemplo, se Bob estivesse trabalhando em um projeto chamado 'gnome', eu gostaria que o URL bob (e qualquer outra pessoa em nossa rede interna) fosse carregado para chegar a este projeto como:http://gnome.bob.my-domain.com. Mas, o que eu gostaria que o Apache fizesse, é reconhecer que o "gnome" é um "projeto" e, assim, mapear a requisição internamente para bob.minha-domínio.com/gnome/.

Eu tenho o que pensei que funcionaria, e é bem simples, mas ... não funciona! A solicitação apenas entra em um loop infinito e mantém o prefixo do subdomínio no URI de solicitação reescrito.

O código de reescrita mod que eu tenho é:

RewriteEngine On

RewriteCond %{HTTP_HOST}    ^([^.]+)\.bob\.my-domain\.com
RewriteCond %{REQUEST_URI}  !^/%1.*
RewriteRule ^(.*)$      /%1/$1 [L]

Eu pesquisei um pouco sobre isso, mas ainda não encontrei soluções reais que funcionem. Alguém já tentou isso - ou talvez alguém tenha uma ideia melhor? Um que não envolve a criação de um host virtual para cada projeto (tenho designers ... acho que todos concordariam que um designer não deveria criar hosts virtuais).

Obrigado!

Aqui está um trecho do rewrite_log:

[rid#838dc88/initial] (3) [perdir /home/bob/http/] strip per-dir prefix: /home/bob/http/index.html -> index.html
[rid#838dc88/initial] (3) [perdir /home/bob/http/] applying pattern '^(.*)

Isso é apenas um trecho, existem uns 10s ou 100 ou mais linhas de apache basicamente reescrevendo /gnome/index.html para /gnome/gnome/gnome/gnome/gnome/index.html, etc antes de o apache atingir seu limite de reescrita, desiste e lança erro 500

to uri 'index.html' [rid#838dc88/initial] (4) [perdir /home/bob/http/] RewriteCond: input='gnome.bob.my-domain.com' pattern='^([^.]+)\.bob\.my-domain\.com' => matched [rid#838dc88/initial] (4) [perdir /home/bob/http/] RewriteCond: input='/index.html' pattern='!^/%1.*' => matched [rid#838dc88/initial] (2) [perdir /home/bob/http/] rewrite 'index.html' -> '/gnome/index.html' [rid#838dc88/initial] (1) [perdir /home/bob/http/] internal redirect with /gnome/index.html [INTERNAL REDIRECT] [rid#8392f30/initial/redir#1] (3) [perdir /home/bob/http/] strip per-dir prefix: /home/bob/http/gnome/index.html -> gnome/index.html [rid#8392f30/initial/redir#1] (3) [perdir /home/bob/http/] applying pattern '^(.*)

Isso é apenas um trecho, existem uns 10s ou 100 ou mais linhas de apache basicamente reescrevendo /gnome/index.html para /gnome/gnome/gnome/gnome/gnome/index.html, etc antes de o apache atingir seu limite de reescrita, desiste e lança erro 500

to uri 'gnome/index.html' [rid#8392f30/initial/redir#1] (4) [perdir /home/bob/http/] RewriteCond: input='gnome.bob.my-domain.com' pattern='^([^\.]+)\.bob\.my-domain\.com' => matched [rid#8392f30/initial/redir#1] (4) [perdir /home/bob/http/] RewriteCond: input='/gnome/index.html' pattern='!^/%1.*' => matched [rid#8392f30/initial/redir#1] (2) [perdir /home/bob/http/] rewrite 'gnome/index.html' -> '/gnome/gnome/index.html' [rid#8392f30/initial/redir#1] (1) [perdir /home/bob/http/] internal redirect with /gnome/gnome/index.html [INTERNAL REDIRECT] [rid#8397970/initial/redir#2] (3) [perdir /home/bob/http/] add path info postfix: /home/bob/http/gnome/gnome -> /home/bob/http/gnome/gnome/index.html

Isso é apenas um trecho, existem uns 10s ou 100 ou mais linhas de apache basicamente reescrevendo /gnome/index.html para /gnome/gnome/gnome/gnome/gnome/index.html, etc antes de o apache atingir seu limite de reescrita, desiste e lança erro 500

questionAnswers(4)

yourAnswerToTheQuestion