[Duvida] .htaccess e subdomains

_sanchaz_

Suspenso
Boas,

Estou aqui com uns problemas, tenho andado a pesquisar e nao encontro maneira de fazer o que pretendo se alguem me pudesse dar uma ajuda agradecia.

O que quero fazer é o seguinte.
Tenho varios utilizadores, cada um tem um subdominio que lhe pertence. ex: www.escrumbe.omeudominio.com
Agr cada um tem uma pasta onde contem a sua pagina pessoal.
essa esta situada em www.omeudominio.com/utilizadores/?
ex: www.omeudominio.com/pasta/escrumbe
Agr o subdominio não existe no cpanel.
Mas quero com o htaccess fazer de maneira a que quando o escrumbe ou um amigo escreva www.escrumbe.omeudominio.com seja feito um redirect para www.omeudominio.com/pasta/escrumbe.
Mas gostava que fosse de maneira a que quando a matumbina escrevesse www.matumbina.omeudominio.com fazia redirect para www.omeudominio.com/pasta/matumbina, ou seja que suporte multplie subdomains.
Se fosse possivel tambem gostava que se a pasta em questao www.omeudominio.com/pasta/XXXX nao existesse ele fazia redirect para uma pasta www.omeudominio.com/pasta/default
ex: www.XXXX.omeudominio.com mas a pasta www.omeudominio.com/pasta/XXXX nao existe logo ele faz redirect para www.omeudominio.com/pasta/default

Se alguem me pudesse ajudar agradecia.

Ate agora tenho isto

Código:
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^*\.omeudominio\.com [NC] 
RewriteCond %{REQUEST_URI} !^/pasta
RewriteRule (.*) /pasta/$1 [L]

encontrei um codigo num forum e modifiquei mas presumo que esteja incorrecto uma vez que pelo que li * nao e um wild card para permitir qualquer valor antes de omeudominio.com

e também tenho este código que acho que esta mas correcto mas mesmo assim nao funciona.

Código:
RewriteEngine on
RewriteRule ([^/\.]+).?$omeudominio.com http://omeudominio.com/pasta/$1
 
O que tu queres é algo que se chama WildCard SubDomain, ou seja, o apache (o servidor web) responde a todos os teus subdominios mesmo que eles não estejam configurados no cpanel mandando o resultado para a raiz do teu site onde o .htaccess faz o resto do trabalho de redirecionamento.

Isto exige manupulação da Zona de DNS do teu dominio e é algo que o teu HSP (Hosting Service Provider) tem de fazer, a não ser que tenhas acesso root.

Os passos necessários para conseguires o que queres são:

1 - Tens de adicionar a seguinte lina na tua zona de DNS:

*.omeudominio.com. 14400 IN A XXX.XXX.XXX.XXX

em que XXX.XXX.XXX.XXX é o teu IP

2 - No ficheiro de configuração do Apache para o teu user/dominio tens de adicionar:

<VirtualHost XXX.XXX.XXX.XXX>
ServerAlias *.omeudominio.com
ServerName www.omeudominio.com (já deve existir)
RedirectMatch 301 (.*) http://omeudominio.com$1 (opcional)
</VirtualHost>

O redirect é opcional. O XXX.XXX.XXX.XXX é o teu IP.

Depois é só salvar, fazer um restart ao Apache e esperar pela propagação de DNS.

Espero que ajude!

Saudações
 
Última edição:
obrigado, mas tenho uma duvida

o redirect e para http://omeudominio.com/pasta/$1 é possivel?
ex:
RedirectMatch 301 (.*) http://omeudominio.com/pasta/$1
</VirtualHost>
 
fiquei so com mais uma duvida

isto é para a config do apache:
Código:
<VirtualHost XXX.XXX.XXX.XXX>
ServerAlias *.omeudominio.com
ServerName www.omeudominio.com
RedirectMatch 301 (.*) http://omeudominio.com$1
</VirtualHost>

e a config .htaccess?
peço dsclp posso tar aqui a cometer um grande erro mas nao percebo nada disto, ainde pensei que a config que referem do apache seja a mesma coisa que o .htaccess mas para tirar as duvidas decidi perguntar.
obrigado.
 
Última edição pelo moderador:
Modificar o config do Apache só o podes fazer se tiveres acesso root ao servidor ou terás de pedir a quem te presta o serviço de alojamento (HSP).

No .htaccess tens de usar o código para redirecionar apenas o subdominio para a pasta que queres.

PS: Adicionei uns comentários na minha mensagem original.

Saudações
 
O que colocas no .htaccess depende do que queiras fazer, mas nunca irá funcionar se a Zona de DNS e a configuração do Apache não estiver correcta.

Um exemplo de código para o .htaccess seria:

Código:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.omeudominio\.com$ [NC]
RewriteRule .* /pasta/%2 [L,QSA]

Saudações
 
Em principio no lado do servidor ja esta tudo feito
agr o codigo .htaccess onde meto o ficheiro? (tendo em conta que o dominio a que quero fazer isto, e um addon ou seja nao esta em public_html mas sim em public_html/dominio.com)
obrigado.
 
Eu diria "coloca no directório onde o dominio/sub que pretendes vai cair"...

Já agora, para testares, mete nomes ao calhas sobre o alias * que foi configurado e todos devem apontar para o teu dominio (antes de colocar o .htaccess) o que verifica se no servidor está tudo ok, tipo:

lavaium.omeudominio.com - vai ter a omeudominio.com

e por ai fora...

Saudações
 
Santo38
so uma coisa

<VirtualHost XXX.XXX.XXX.XXX>
ServerAlias *.omeudominio.com
ServerName www.omeudominio.com
RedirectMatch 301 (.*) http://omeudominio.com$1
</VirtualHost>

que faz o $1 aqui?
isso que esta ai devia fazer com que qualquer subdominio fosse parar ao dominio original certo?
 
Back
Topo