Recentemente se tornou conhecido que motores de buscas como Google penalizam web sites com conteúdos duplicado. Isto já falamos no manual de Posicionamento em buscadores, no artigo
Sitie com conteúdos duplicado podem ser penalizados em Google.
Neste artigo comentamos vários conselhos para não ser penalizados por ter conteúdo duplicado em nosso site.
Um dos conselhos é que nosso site não se possa acessar através de URLs distintas, com ou sem os 3 w. Por exemplo:
http://www.meusitedeexemplo.com
http://meusitedeexemplo.com
Se ambos endereços tiverem o mesmo conteúdo, Google pode pensar que você está duplicando informação em seu domínio e pode cair a classificação em buscadores de seu website.
Criamos então um código em PHP que apresentamos neste artigo para canonizar os endereços URL de seu domínio (escolher qual preferimos que seja utilizado e indexado em Google, a URL com os 3w ou sem eles), criando um domínio principal e redirecionando as URLs dos domínios secundários ao principal. Neste caso preferimos que o domínio principal seja o que tem os 3w e que o acesso ao domínio sem os www se redirecione ao domínio com eles.
Na realidade o código é muito simples. Só há que conhecer algumas variáveis do array de variáveis superglobais $_SERVER, que contém informação sobre o servidor, a URL a que se está acessando, o domínio, etc.
Referência: Para saber mais das variáveis de $_SERVER em PHP podemos acessar a estas informações:
Vejamos o código PHP comentado deste artigo:
//pedaço de código para que sempre se visite o domínio com os 3w
if (substr($_SERVER["SERVER_NAME"],0,4) != "www."){
//se o domínio ao que tentamos acessar está sem os 3w
//o redireciono ao domínio com os 3w
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www." . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]);
}
Em nosso código fazemos o seguinte: Detectamos no nome do servidor ao que se acessa, ou seja, o nome do domínio da URL que estamos acessando. Se não começa por "www." é que não se está acessando ao domínio como queremos, ou seja, com os 3 w.
Nesse caso, simplesmente fazemos um redirecionamento 301 (movido permanentemente) ao endereço com os www. Para saber o servidor ao que estamos acessando utilizamos a variável $_SERVER["SERVER_NAME"] e para saber a página concreta a qual temos que dirigir dentro do domínio utilizamos a variável $_SERVER["REQUEST_URI"]).
Este script PHP serve para qualquer domínio onde o colocarmos e qualquer página desse domínio, pois está parametrizado através de $_SERVER tanto o nome do domínio como o nome da página ao qual redirecionar o navegador.
Com isto conseguiremos não ter duplicado o conteúdo da web em dois domínios distintos, com e sem os www, com o que nosso website PHP estará um pouco mais otimizado para buscadores.