Qualquer webmaster realiza um dia que um dos seus arquivos foi mal intitulado ou que o diretório dos arquivos deve ser modificado. No entanto, se trocar os links em seu site é relativamente fácil, em outros sites (sites externos) é muito mais difícil. Além disso, quando trocamos as páginas de lugar, os motores de busca são capazes de enviar os usuários em um vácuo ou pior, reinicializar completamente a referencialidade da página.
Felizmente, existe uma solução bem simples : os redirecionamentos que, ajudam a manter a coerência da navegação (e da referencialidade) de um site, mesmo se todos os arquivos mudaram de lugar.
Redirecionamento simples
Para encaminhar o navegador para outra página (particularment útil em loop condicional), basta utilizar o seguinte código :
<?php
header('Localização: mapeamento.php');
?>
O
mapeamento.php representa o endereço da página em direção da qual você quer fazer o reencaminhamento. Este endereço pode ser absoluto e também possuir configurações de forma
mapeamento.php?param1=val1¶m2=val2).
Caminho relativo/ absoluto
Idealmente, prefira um caminho absoluto à partir da raíz do servidor (DOCUMENT_ROOT), da seguinte maneira :
<?php
header('Localização: /diretório/mapeamento.php');
?>
Se por acaso a página procurada se encontra em um outro servidor, digite o URL completo, da seguinte forma :
<?php
header('Localização: http://www.kioskea.net/forum/');
?>
Cabeçalhos HTTP
Os redirecionamentos são cabeçalhos HTTP. Ou, segundo o protocolo HTTP, os cabeçalhos HTTP devem ser enviados antes de qualquer outro conteúdo , o que significa que nenhum outro caractere deve ser enviado antes da chamada da função header, nem mesmo um espaço !
Em outras palavras,
a função header() deve ser absolutamente utilizada antes de qualquer código HTML.
Para mais informações, leia este artigo :
o erro "headers already sent by"
Redirecionamentos temporários/definitivos
O redirecionamento padrão apresentado acima é do tipo temporário. O que significa que o seu referenciamento não se encontra em motores de busca como o Google, por exemplo.
Assim, se você quiser demonstrar aos motores de busca que a página A se encontra agora na página B, utilize o seguinte código no início do arquivo PHP correspondente à página A :
<?
header('Status: 301 Moved Permanently', false, 301);
header('Locatização: endereço_da_página_B);
?>
Exemplo
A página
http://www.kioskea.net/pc/imprim.php3 possui o seguinte código :
<?
header( "Status: 301 Moved Permanently", false, 301);
header("Locatização: /pc/impressora.php3");
exit();
?>
Assim, quando você clicar no link acima, você será transferido automáticamente para a página procurada
http://www.kioskea.net/pc/impressora.php3
Além do mais, trata-se de um redirecionamento permanente (Status: 301 Moved Permanently). Assim, ao digitar o primeiro URL no Google, é o segundo endereço que aparecerá como resultado, provando que o redirecionamento foi levado em conta :
http://www.google.fr/search?hl=fr&q=http%3A%2F%2Fwww.kioskea.net%2Fpc%2Fimprim.php3&btnG=Recherche+Google&meta=
Interpretação do código PHP
O código PHP que aparece após a chamada da função header() será interpretado pelo servidor, mesmo se o navegador já se encontra no endereço especificado no redirecionamento, o que significa na maioria dos casos que você deve seguir a função header() da função exit() a fim de não deixar o servidor trabalhar à toa :
<?
header('Status: 301 Moved Permanently', false, 301);
header('Localização: aendereço);
exit();
?>
Saiba mais
Artigo
original publicado por
Thom@s