htaccess reescrevendo todos os subdomínios para subdiretórios

4

Estou tentando criar um pega-tudo para todos os subdomínios (não capturados por regras de reescrita anteriores) de um determinado domínio e veicular um site a partir de um subdiretório que reside na mesma pasta que o arquivo .htaccess. Eu já tenho meu vhosts.conf para enviar todos os pedidos não mapeados para uma pasta "playground", onde eu quero criar facilmente novos subdomínios, simplesmente adicionando uma subpasta.

Então, minha estrutura é assim:

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

Os .htacces que vivem dentro da pasta / playground e / foo e / bar são sites separados. Eu quero que http://foo.domain.com aponte para / foo e http://bar.domain.com para / bar.

Aqui está o meu arquivo .htaccess:

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

Isso deve capturar o subdomínio, incluí-lo como uma subpasta em RewriteRule e, em seguida, acrescentar após as informações de barra e caminho. O segundo RewriteCond está lá para evitar um loop infinito. Minha idéia era que% 1 no segundo RewriteCond seria capaz de capturar o grupo de captura no primeiro RewriteCond. Mas até agora eu não tive nenhum sucesso, está sempre terminando em um loop de redirecionamento. Se eu substituir% 1 no segundo RewriteCond com 'foo' ou 'bar' codificado, ele funciona, o que me leva a acreditar que você não pode se referir a um grupo de captura dentro de um RewriteCond. É verdade? Ou estou faltando alguma coisa?

    
por indorock 23.10.2012 / 00:32

1 resposta

0

Espero ter entendido corretamente:

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