Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

newboxters

[Resolvido] .htaccess - redirecionamento universal de todos os do

Recommended Posts

Exemplo de meus domínios que ABREM o mesmo site:

dominio1.com

dominio1.com.br

dominio2.com

dominio2.com.br

dominio3.com

dominio3.com.br

 

O que eu pretendo fazer:

Independente do domínio digitado, com ou sem WWW, pretendo que apareça sempre o endereço:

http://site.com

 

Sem www, e se a pessoa digitar: www.dominio1.com/pasta

Abrir: http://site.com/pasta

 

Na verdade, neste tópico, encontrei já minha solução:

http://forum.webfaction.com/viewtopic.php?id=3905

 

Mas ao invés de declarar todos os domínios, gostaria de uma solução universal, para qualquer domínio que apontar para meu site, abrir sempre no mesmo (http://site.com), pois estou sempre registrando novos domínios.

 

Minha tentativa:

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

 

E funcionou sempre que eu digito: www.algum-dominio-meu.com.br

Abre: http://site.com

 

Mas se eu digitar sem o www ou seja: http://algum-dominio-meu.com.br daí não redireciona.

 

Alguma sugestão? Acho que estou chegando perto, após algumas tentativas e decidi recorrer a uma ajuda aqui com vocês.

 

Obrigado pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente com "negative lock-ahead" do regex

Para o seu caso, a lógica seria excluir tudo que seja diferente de um determinado valor no início da string

 

Expressão:

^(?!ABC).+

 

 

A situação é bastante simples, por isso vou mostrar um exemplo com PHP:

 

$str = 'ABC.com.abc';
echo preg_replace( '#^(?!ABC).+#', 'X', $str ); // ^(?!ABC).+
// retornará falso (quer dizer que não precisa redirecionar)
echo '<hr>';
$str = 'www.ABC.com.abc';
echo preg_replace( '#^(?!ABC).+#', 'X', $str ); // ^(?!ABC).+
// retornará X (redireciona)
echo '<hr>';
$str = 'qualquer.coisa.ABC.com.abc';
echo preg_replace( '#^(?!ABC).+#', 'X', $str ); // ^(?!ABC).+
// retornará X (redireciona)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente com "negative lock-ahead" do regex

Para o seu caso, a lógica seria excluir tudo que seja diferente de um determinado valor no início da string

 

Expressão:

^(?!ABC).+

 

 

hinom, muito obrigado!

Deu certo mesmo. Uma solução totalmente eficiente e que eu não havia nem pensado nela.

 

Agora, 1 linha de código substituiu diversas, sem contar a praticidade de cada novo domínio não precisar adicionar a condição do redirect dele no .htaccess.

 

Pra encerrar, o código final:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?!dominio).+ [NC]
RewriteRule ^(.*)$ http://dominio.com.br/$1 [R=301,L]

 

Assim, qualquer domínio abre o domínio principal, sem o www, e evita o loop infinito caso já digite o domínio principal, sem o www.

Perfeito para o Google não ver conteúdo duplicado, perfeito para nossas necessidades.

 

Valeu mesmo pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.