Como Fazer um Redirecionamento PHP

Conteúdo

Você está aqui:

O Método Básico Para Fazer Um Redirecionamento PHP

A maioria dos guias lhe dirá que, para fazer um redirecionamento PHP, você pode simplesmente usar a função header() na parte superior das suas páginas. Para fazer isso, você usa a função para enviar uma nova URL, assim: 

header('Location: '.$newURL.php);

Essa função de cabeçalho deve ser colocada antes de você passar qualquer HTML ou texto para os navegadores dos usuários. Por isso, deve estar no topo da página. Isso significa que ele deve vir antes da declaração <!DOCTYPE>, antes de qualquer código Java e PHP. Em seguida, ele envia os usuários para a nova URL. 

Embora possa parecer simples, quando se trata da função header(), a simplicidade do código pode causar uma falsa sensação de segurança. Então, vamos ver como você pode usar essa função corretamente.

Die() e Exit ()

Primeiro, você deve usar os modificadores die() ou exit() toda vez que usar um redirecionamento. Em resumo, o problema é que os rastreadores e robôs podem ignorar os cabeçalho e, então, a página que você estava redirecionando é totalmente acessível a eles.

Se, em outras palavras, você está usando um redirecionamento de cabeçalho para proteger uma página em particular, ela não oferece proteção nenhuma.

É por isso que você precisa desligar o redirecionamento se ele for ignorado. A maneira de fazer isso é anexar die() ou exit() após o seu redirecionamento:

header("Location: .$newURL.php");

die();

URLs Relativas e Absolutas 

Em seguida, vamos falar sobre URLs relativas e absolutas nos redirecionamentos. O RFC 7231 permite usar os dois, mas você deve ser extremamente cuidadoso ao usar redirecionamentos relativos. Isso acontece porque alguns criadores de sites coletam e renomeiam páginas PHP.

Isso significa que, se você estiver trabalhando no seu PHP por meio de um criador de sites, poderá acabar quebrando todos os seus redirecionamentos

Infelizmente, no momento não há uma maneira real de contornar esse problema, além de ser cuidadoso sobre onde seus redirecionamentos estão apontando.

Códigos de Statis

O terceiro problema com os redirecionamentos padrão do PHP é que o operador “local” do PHP ainda retorna o código HTTP 302 .

Você não deve aceitar isso, porque muitos navegadores da web implementam esse código de maneira totalmente contrária à maneira como ele deve funcionar: eles essencialmente usam o comando GET em vez de executar um redirecionamento “real”.

A melhor prática ao criar redirecionamentos PHP é, portanto, especificar o código que é retornado. Infelizmente, o código correto a ser usado é um ponto de discórdia.

O HTTP 301 indica um redirecionamento permanente, o que pode causar problemas ao restaurar sua página original. Infelizmente, o HTTP 303 é entendido como “outro” por muitos navegadores e pode causar problemas com a indexação da sua página pelos mecanismos de pesquisa.

Na prática, e até que tudo seja resolvido, use HTTP 303.

Verifique a Documentção 

Além de tomar as precauções básicas acima, reserve um tempo para ler a documentação sobre o uso de redirecionamentos PHP antes de publicá-los.

Você deve ler o manual do PHP para garantir que entende o que está fazendo, além de verificar a documentação do W3C para garantir que está seguindo as melhores práticas.

E enquanto você está fazendo suas leituras, lembre-se de proteger também o site contra vulnerabilidades comuns: se você já está em fase de ter que usar redirecionamentos PHP, é provável que a segurança do site precise de uma auditoria.

php

Outros Métodos 

Considerando todos esses problemas, você provavelmente está se perguntando por que usaria um redirecionamento PHP.

Embora os redirecionamentos PHP normalmente sejam executados mais rapidamente do que outros tipos de redirecionamento e possam, portanto, ser uma ferramenta importante para melhorar a velocidade do site, existem outras opções disponíveis.

Existem duas abordagens principais para fazer isso. Você pode usar o elemento HTML <meta> para redirecionar de dentro da parte HTML da sua página ou usar JavaScript. A primeira abordagem – usando <meta> ficaria assim:

<meta http-equiv="refresh" content="0;url=newpage.php">

A segunda abordagem – usando JavaScript – é um pouco mais elegante e certamente parece mais profissional:

window.location.replace("http://newpage.php/");

Ambas as abordagens serão executadas um pouco mais lentamente que o redirecionamento imediato do header(), mas são sem dúvida mais flexíveis.

Was this article helpful?
Dislike 0

Os Melhores Planos de Hospedagem

Seja cliente da melhor Hospedagem de Sites do Brasil. Com Servidores Otimizados e Tecnologia de Ponta, nossas hospedagens tem tudo para que seu site fique muito mais rápido.