O redirect em PHP é uma estratégia eficaz para realizar um redirecionamento automático de uma URL para outra página.
Veja como fazer esse processo e os códigos de resposta que podem aparecer, além de métodos alternativos para fazer esse redirecionamento em outras linguagens.
Como fazer um redirect em PHP?
Veja como fazer um redirect em PHP por meio de três passos simples.
1. Defina o header para o redirecionamento
O comando principal para realizar o redirect em PHP é o header (). Dentro dessa função, você deve especificar a URL de destino para onde será redirecionado. Veja um exemplo abaixo:
header("Location: https://www.exemplo.com"); exit;
Aqui, “location” define a nova página e a função “exit” é usada logo após o “header”, a fim de garantir que nenhum outro código PHP seja executado após o redirecionamento.
2. Verifique o envio de cabeçalhos
Tenha em mente que o comando “header” só pode ser usado antes de qualquer saída HTML ou outro conteúdo do navegador. Caso tenha qualquer saída (como um espaço ou carácter a mais), aparecerá uma mensagem de erro.
Para evitar que isso ocorra, você pode verificar se os cabeçalhos já foram enviados com a função headers_sent (). Confira um exemplo:
if (!headers_sent()) { header("Location: https://www.exemplo.com"); exit; }
3. Configure o código de status
Esse é um passo opcional, mas você também pode incluir um código de status HTTP no redirect 301 (movido permanentemente) ou 302 (movido temporariamente).
Vamos falar sobre isso ao longo do texto, mas já deixamos um exemplo desse comando para você:
header("Location: https://www.exemplo.com", true, 301); exit;
O que significam os códigos de resposta?
Os códigos de resposta http são uma forma padronizada de comunicação entre servidores web e pessoas usuárias, o que indica o resultado de uma solicitação. Esses códigos são divididos em cinco categorias principais que caracterizam o tipo de resposta.
Informacionais (100 – 199)
Esses códigos indicam que a sua solicitação foi recebida e está em processamento. O código 100 (“Continue”) informa que o servidor recebeu parte da solicitação e o cliente pode continuar o envio de dados.
Successful (200 – 299)
Se a solicitação for bem-sucedida, um código 2xx é retornado. O mais comum deles é o 200 (“OK”), que indica que a solicitação foi concluída com sucesso e o conteúdo foi entregue ao cliente.
Redirection (300-399)
Mostram que a pessoa precisa tomar uma ação adicional, geralmente um redirecionamento para outra URL.
Código 301
O código 301 significa que o recurso foi movido permanentemente para outra URL. Ele é especialmente útil para o SEO, pois indica ao navegador e aos motores de busca que devem usar o novo link no futuro.
Código 302
Indica que o recurso foi movido temporariamente. Diferentemente do 301, ele sugere que o redirecionamento é temporário e a URL original pode ser usada novamente no futuro.
Client Error (400-499)
Sinalizam que ocorreu um problema com o pedido do cliente. Um deles é o conhecido erro 404 (“Não Encontrado”), que significa que o recurso solicitado não pôde ser localizado. Já o 403 (“Forbidden”), informa que o acesso ao recurso é proibido.
Erro no servidor (500-599)
Quer dizer que há um problema no servidor. O código 500 é o mais comum e significa que o servidor encontrou algum erro inesperado ao processar a solicitação.
Métodos alternativos
Conheça três métodos alternativos ao PHP para redirecionar pessoas usuárias de uma página para outra.
Redirecionamento com meta tag HTML
Esse é um dos métodos de redirecionamento mais simples, que é o uso de uma meta tag HTML. Você não precisará usar linguagens de programação e ela poderá ser definida diretamente no código da página. Veja um exemplo:
<meta http-equiv="refresh" content="5; url=https://www.exemplo.com">
Após 5 segundos, há o redirecionamento para a URL especificada. É um bom método para caso você queira mostrar uma mensagem antes do direcionamento, mas não é tão indicada do ponto de vista do SEO, pois os motores de busca podem não seguir o link corretamente.
Redirecionamento com JavaScript
Você também pode fazer o redirecionamento pelo JavaScript. Essa é uma opção mais flexível, já que pode ser controlada por eventos ou condições específicas dentro da página:
window.location.href = "https://www.exemplo.com";
Utilizá-lo te dará maior controle, como a possibilidade de redirecionar com base em cliques ou tempos dinâmicos, mas exige a presença do JavaScript no navegador.
Redirecionamento por arquivo .htaccess
Também é possível fazer redirecionamento no servidor ao usar o arquivo .htaccess em servidores Apache. Para redirecionar permanentemente uma página, basta incluir a seguinte linha ao arquivo:
Redirect 301 /antiga-pagina.html https://www.exemplo.com/nova-pagina.html
É um método recomendável para redirecionamentos permanentes e temporários, além de ser ideal para preservar o SEO do seu site, já que os motores de busca são informados sobre a mudança de URL.
O que é PHP?
O PHP, sigla para “Hypertext Preprocessor”, é uma linguagem de programação de código aberto amplamente utilizada para o desenvolvimento web. Ele foi criado por Rasmus Lerdorf, em 1994, e foi projetado para gerar conteúdo dinâmico em páginas na web, além de ser executado ao lado do servidor.
Isso significa que o código PHP é processado no servidor e o seu resultado é enviado ao navegador como HTML, sem que o código PHP seja visível para quem visita a página.
Usar o PHP pode trazer diversos benefícios, mas um dos principais é a sua integração com bancos de dados, como MySQL, PostgreSQL e MariaDB, o que facilita a criação de aplicações web interativas, como sistema de gerenciamento de conteúdo, lojas virtuais, blogs, entre outros.
Além disso, essa é uma linguagem simples, flexível e com uma grande comunidade de pessoas desenvolvedoras, o que resulta em um alto volume de bibliotecas em frameworks disponíveis, como Laravel, Symfony e CodeIgniter.
O PHP também suporta vários paradigmas de programação, como programação orientada a objetos, além de poder ser integrado com outras linguagens e tecnologias, como HTML, CSS, JavaScript e XML.
O que é um redirecionamento PHP?
O redirecionamento em PHP é um processo no qual o servidor envia uma URL para outra de forma automática. Isso é feito por meio do uso da função “header()” no código PHP, que instrui o navegador a carregar uma nova página.
É possível utilizar esse direcionamento em diversas situações, como após o envio de um formulário, a migração de páginas ou para enviar a um novo link após alterações no site.
O comando “header ()” envia uma resposta ao navegador e indica que ele deve carregar uma URL específica. O “exit” é usado para garantir que nenhum código seja executado após o redirecionamento, o que encerra, imediatamente, o script.
Esse direcionamento tem ferramentas poderosas para manter a experiência fluida e garantir que ele chegue ao conteúdo correto, mesmo que a estrutura do site tenha mudado.
Além disso, ele também pode ser usado para controlar o fluxo de navegação com base em lógica condicional ou eventos específicos, o que melhora a experiência.
Diferenças para o redirecionamento em HTML
Redirecionamento PHP
O redirecionamento PHP é feito no lado do servidor, o que significa que o processo de direcionamento é feito instantaneamente, antes mesmo de o navegador carregar a página original.
Além disso, o redirecionamento em PHP permite o uso de código de status HTTP, como o 301 e o 302.
Redirecionamento HTML
Já o redirecionamento em HTML é feito no lado do cliente, ou seja, diretamente no navegador. O método mais comum é por meio da meta tag refresh, que pode incluir um atraso no redirecionamento.
Esse direcionamento ocorre após o número de segundos especificados no tributo content. No entanto, ele não oferece controle direto sobre os códigos de estados HTTP, o que também pode impactar significativamente o SEO.
Quais são as suas vantagens?
-
- Controle total sobre o redirecionamento: o redirecionamento ocorre antes que o conteúdo da página seja carregado no navegador, o que faz com que as suas partes desnecessárias fiquem escondidas;
- É melhor para SEO: permite o uso de código de status HTTP, como 301 ou 302, importantes para a otimização de mecanismos de busca, como o Google, que os reconhecem e tratam de acordo;
- Flexibilidade no uso de lógica condicional: permite redirecionar com base em condições específicas: em um idioma, localização geográfica, estado de login ou qualquer outra variável, tudo ao usar scripts condicionais;
- Ampla compatibilidade: diferentemente de redirecionamentos baseados em JavaScript, que dependem da sua ativação no navegador, o direcionamento em PHP funciona independentemente das configurações do cliente;
- É mais seguro: como ele é feito no lado do servidor, o redirecionamento em PHP dá mais segurança, já que não é possível visualizar ou alterar o código que define a lógica do direcionamento pelo navegador.
O que são URLs relativas e absolutas?
As URLs absolutas contêm o endereço completo e incluem o protocolo (http:// ou https://), o domínio e o caminho completo para o recurso. São usadas quando você precisa referenciar um recurso em um domínio ou servidor diferente, ou quer garantir que o link funcione de qualquer local da web.
Veja um exemplo abaixo:
https://www.exemplo.com/pasta/pagina.html
Já as URLs relativas dizem respeito ao endereço que depende do local atual da página. Ela não inclui o domínio do protocolo, que é relativo ao caminho da página utilizada. Veja o modelo abaixo:
/pasta/pagina.html
Nesse caso, a relativa é usada quando o recurso está no mesmo domínio da página atual. Se ela tiver origem hospedada em https://www.exemplo.com, a URL relativa será interpretada como https://www.exemplo.com/pasta/pagina.html.
Esse tipo de link é útil para manter os endereços consistentes dentro do mesmo site, o que facilita processos de manutenção e mudanças de estrutura.
Qual a importância de verificar a documentação?
-
- Obter informações detalhadas sobre a função “header()”;
- Compreender a sintaxe e os parâmetros que podem ser usados com a função header();
- Evitar armadilhas comuns, como esquecer de usar “exit” após o direcionamento;
- Conhecer os códigos de status HTTP que podem ser utilizados em redirecionamentos;
- Ficar por dentro de atualizações e melhores práticas do PHP.
Assim, ao entender como fazer redirect PHP (e em outras linguagens de programação, como Python), você não precisará enfrentar problemas com acessos em páginas fora do ar.
Leia também: