Pasta Apache Redirect para subdomínio

6

Um cliente tinha um aplicativo em www.domain.com/dir. Eles agora configuraram um subdomínio em dir.domain.com. O subdomínio faz referência aos arquivos armazenados em www.domain.com/dir. Eles agora gostariam que as pessoas acessando www.domain.com/dir fossem redirecionadas para dir.domain.com.

Eu estou supondo que eu preciso de um. Htaccess para sentar em www.domain.com / dir e se ele é acessado via www, redirecionar para o subdomínio, apenas não tenho certeza da sintaxe.

    
por Thody 08.09.2009 / 21:35

5 respostas

5

Adicione um .htacess ao diretório pertencente a www.domain.com/dir :

RewriteEngine on
RewriteCond ${HTTP_HOST} ^www\.domain\.com$
RewriteRule ^(.*) http://dir.domain.com/$1 [R,L]

A primeira linha ativa mod_rewrite , a segunda linha verifica se a solicitação atual está usando o hostname www.domain.com para acessar o recurso e a terceira linha redireciona todas essas solicitações para o nome do host de destino desejado.

    
por 08.09.2009 / 21:34
4

E simplesmente:

Redirect /dir http://dir.domain.com
    
por 08.09.2009 / 22:36
0

djhowell estava quase lá:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$
RewriteRule ^/dir(/.*)?$ http://dir.domain.com$1 [R=301,L]

Você precisa da barra inicial em RewriteRule ou nada será igual. O (/.*)?$ bit corresponde a 0 ou 1 slash-then-anything e depois ao final do URI. (Isso é importante - sem isso nós também corresponderíamos a www.domain.com/dirsomethingelse ).

  • www.domain.com/dir -> dir.domain.com
  • www.domain.com/dir/ -> dir.domain.com/
  • www.domain.com/dir/blah.html -> dir.domain.com/blah.html
por 08.09.2009 / 22:11
0

Experimente esta regra em um arquivo .htaccess no seu diretório / dir :

RewriteCond %{HTTP_HOST} !=dir.example.com
RewriteRule .* http://dir.example.com/$0 [L,R=301]

Ou esta regra no seu diretório raiz:

RewriteCond %{HTTP_HOST} !=dir.example.com
RewriteRule ^dir(/(.*))?$ http://dir.example.com/$2 [L,R=301]
    
por 18.09.2009 / 14:38
-1

Isso deve funcionar:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$
RewriteRule ^dir/(.*) http://dir.domain.com/$1 [R=301,L] 
    
por 08.09.2009 / 21:45