Pergunta

Estou tentando redirecionar solicitações de um domínio curinga para um sub-diretório.
ou seja. something.blah.domain.com --> blah.domain.com/something

Eu não sei como obter o nome de subdomínio para usar a regra de reescrita.

Solução Final:

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

Ou, como apontado por pilif

RewriteCond %{HTTP_HOST} ^([^.]+)\.media\.xnet\.tk$
Foi útil?

Solução

Você deve ter um olhar para o A Regravação de URL Guia a partir da documentação do apache.

O seguinte é não testado, mas deve o truque:

RewriteCond %{HTTP_HOST} ^([^.]+)\.blah\.domain\.com$
RewriteRule ^/(.*)$           http://blah.domain.com/%1/$1 [L,R] 

Isso só funciona se o subdomínio não contém pontos.Caso contrário, você teria de alterar o Regexp em RewriteCond para corresponder a qualquer caractere que ainda deve funcionar devido à ancoragem, mas isso certamente se sente mais seguro.

Outras dicas

Tente isso:

RewriteCond %{HTTP_HOST} (.+)\.blah\.domain\.com
RewriteRule ^(.+)$ /%1/$1 [L]

@pilif (ver comentário):Ok, isso é verdade.Eu simplesmente copiou um .htaccess que eu uso em um de meus projetos.Acho que tem uma abordagem um pouco diferente :)

@Sam

seu RewriteCond linha é errado.A expansão da variável, é acionado com %, sem $.

RewriteCond %{HTTP_HOST} ^([^\.]+)\.media\.xnet\.tk$
            ^

que deve fazer o truque

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top