terça-feira, 2 de dezembro de 2008

Redirecionar http:// para http://www isso é canonizar!

Escrito originalmente por Miguel Angel Alvarez - Tradução de JML


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:
* Variáveis de sistema em PHP
* FAQ Variáveis $_SERVER em PHP

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.