htaccess - Subdomínios curinga para subpastas

1

Então a ideia é que eu tenho:

domain.com/.subdomains/domain1 (2,3,4,etc)

E eu quero mapear:

domain1.domain.com -> domain.com/.subdomains/domain1/
domain2.domain.com -> domain.com/.subdomains/domain2/

Mas eu quero ignorar "www"

Eu estou fazendo isso com pouco sucesso com isso:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
RewriteRule ^(.*)$ http://domain.com/.subdomains/%1/$1 [NC,QSA,L,P]

Existem dois problemas:

1) Não está ignorando o "www"

2) Quando vou para o URL:

http://domain3.domain.com/deep/subfolder/here/index.html

me redireciona para:

http://domain.com/.subdomains/domain3/deep/subfolder/here/index.html

Estou tentando encontrar respostas, mas não consigo encontrar mais ninguém com esse problema. Alguma idéia?

Obrigado!

EDITAR:

Ok, parece que não consigo usar o http, mas se eu mudar

RewriteRule ^(.*)$ http://domain.com/.subdomains/%1/$1 [NC,QSA,L,P]

para

RewriteRule ^(.*)$ /.subdomains/%1/$1 [NC,QSA,L,P]

Vai para um loop de redirecionamento estranho

    
por tommica 26.05.2013 / 14:00

1 resposta

0

Eu tenho que trabalhar com isso:

RewriteEngine on

RewriteBase /

# MAGIC
RewriteCond $1 !/$
RewriteCond $1 !\.
RewriteRule ^(.+)$ /$1/ [R=301,L]
# //MAGIC

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.domain\.com
RewriteCond %{REQUEST_URI} !^/.subdomains/
RewriteRule ^(.*)$ /.subdomains/%1/$1 [L]

Eu praticamente entendo o resto do código, exceto a parte mágica - de alguma forma, isso corrige esse bug:

http://domain3.domain.com/deep/subfolder/here/index.html

Para

http://domain.com/.subdomains/domain3/deep/subfolder/here/index.html

Neste momento isso não acontece, graças ao MAGIC ... Eu gostaria de saber por que funcionou.

    
por 26.05.2013 / 22:09