[PHP] Encaminhar para outra página (redirecionamento)

última modificação em 24 de Outubro de 2009 às 15:15 por pintuda
Publicado por pintuda
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 procuradahttp://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
Melhores respostas por « Encaminhar para outra página (redirecionamento) » em :
Download VirtMus Ver VirtMus é um visor de imagens para músicos . A idéia é simples mas atrativa : no lugar de virar a página com a mão, a partitura aparece na tela do computador . Para passar á outra página você necessitará do mouse ou de um pedal USB . As páginas...
[Internet] O cache do Internet Explorer VerEnquanto você navega na WEB, o seu navegador põe as páginass Web em um cache , ou seja, ele salva estas páginas, imagens e outros arquivos, no seu PC. Graças a este cache , seu navegador não precisará mais baixar, a cada visita, a ou as, páginas...
[Internet] O cache da Internet Explorer VerQuando você navega na Web, seu navegador coloca as páginas Web em um cache, quer dizer que ele grava as páginas e outros arquivos no seu PC. Graças a este cache, seu navegador não terá mais que procurar as páginas que estão já no seu disco...
Hierarquização e sumário automático no Word VerHierarquização e sumário automático no Word Hierarquização e sumário automático A utilização da hirarquização no word permite gerar automaticamente um sumário. Além do mais, permite simplificar as modificações de estilo e de paginação aplicada...
Download Web Developer Toolbar VerWebDeveloper é uma ótima caixa de ferramentas para manipular e examinar as páginas web. Com ele, você pode : Ativar e desativar o java, javascript, HTTP Referer, etc Manipular os cookies, desativá-los por domínios, etc. Ver e altar os CSS ...
Download WordReference Translator VerWordReference Translator utiliza a completa base de dados de WordReference.com para traduzir palavras de qualquer página Web para outro idioma . Seu funcionamento é muito simples . Ao fazer duplo clique numa palavra qualquer aparecerá um botão...
Os formulários HTML VerInteresse de um formulário Os formulários interativos permitem aos autores de páginas Web dotar a sua página web de elementos interativos que permitem por exemplo um diálogo com usuário da internet , à maneira coupons-réponse ...
Partilhar uma conexão Internet no Windows XP VerInteresse Se possuir uma rede local (dois computadores ou mais ligados em rede), um dos quais esteja ligado à Internet (através de um modem, por cabo,…), pode ser interessante tornar a conexão acessível aos outros computadores da rede...
TCP/IP VerO que significa TCP/IP? O TCP/IP é uma sequência de protocolos. A sigla TCP/IP significa “Transmission Control Protocol/Internet Protocol” e pronuncia-se “T-C-P-I-P”. Provém dos nomes dos dois protocolos essenciais da sequência de...