Como redirecionar versões de sites em PHP

O redirecionamento é o processo de enviar os visitantes para uma URL diferente daquela que eles solicitaram. No PHP, isso pode ser feito utilizando o cabeçalho header() para modificar as respostas HTTP, instruindo o navegador a acessar uma nova página. Neste post, aprenda como redirecionar versões de sites em PHP.

Passo 1: Redirecionamento simples com HEADER()

A função mais comum para redirecionar uma página em PHP é o header(). Vamos ver um exemplo básico de redirecionamento:

<?php
// Redireciona para a URL desejada
header("Location: https://www.novosite.com");
exit(); // Sempre use exit() após o header para parar a execução do script
?>

Neste exemplo, qualquer usuário que acessar essa página PHP será automaticamente redirecionado para https://www.novosite.com. O exit() é necessário para garantir que nenhum código adicional seja executado após o redirecionamento.

Passo 2: Redirecionamento condicional

Agora, vamos ver como redirecionar os usuários para diferentes versões do site com base em condições específicas, como o tipo de dispositivo, idioma ou sessão de login.

2.1 Redirecionamento por dispositivo (Mobile vs. Desktop)

Para redirecionar com base no dispositivo (por exemplo, para uma versão mobile do site), você pode verificar o user-agent (a string enviada pelo navegador que identifica o dispositivo). Usamos a função $_SERVER['HTTP_USER_AGENT'] para obter essa informação.

<?php
$user_agent = $_SERVER['HTTP_USER_AGENT'];

// Verifica se o usuário está em um dispositivo móvel
if (preg_match("/iPhone|Android|BlackBerry|IEMobile|Opera Mini/i", $user_agent)) {
    // Redireciona para a versão mobile
    header("Location: https://m.novosite.com");
    exit();
} else {
    // Redireciona para a versão desktop
    header("Location: https://www.novosite.com");
    exit();
}
?>

Esse código usa expressões regulares para identificar se o usuário está acessando o site por meio de um dispositivo móvel e o redireciona para a versão mobile. Se não estiver em um dispositivo móvel, ele é redirecionado para a versão desktop.

2.2 Redirecionamento por idioma

Se o seu site oferece suporte a múltiplos idiomas, você pode redirecionar o usuário automaticamente com base na preferência de idioma do navegador, que pode ser obtida com a variável $_SERVER['HTTP_ACCEPT_LANGUAGE'].

<?php
$idioma = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

switch ($idioma) {
    case 'en':
        header("Location: https://www.novosite.com/en/");
        break;
    case 'es':
        header("Location: https://www.novosite.com/es/");
        break;
    case 'fr':
        header("Location: https://www.novosite.com/fr/");
        break;
    default:
        header("Location: https://www.novosite.com/pt/");
}
exit();
?>

Neste exemplo, o script verifica a primeira parte do cabeçalho de idioma do navegador e redireciona para a versão apropriada do site (inglês, espanhol, francês ou português, nesse caso).

2.3 Redirecionamento após login

Um uso comum do redirecionamento em PHP é levar o usuário para uma página específica após um login bem-sucedido, como uma área de membros ou painel administrativo.

<?php
session_start();

// Supondo que o login foi verificado
if (isset($_SESSION['usuario_logado'])) {
    // Redireciona para a área do membro
    header("Location: https://www.novosite.com/membros");
    exit();
} else {
    // Redireciona para a página de login
    header("Location: https://www.novosite.com/login");
    exit();
}
?>

Neste exemplo, se a sessão indicar que o usuário está logado, ele será redirecionado para a área de membros. Caso contrário, será redirecionado para a página de login.

Passo 3: Redirecionamento com base em parâmetros na URL

Você também pode redirecionar usuários com base em parâmetros passados na URL. Isso é útil em sistemas de roteamento ou quando você quer lidar com query strings.

<?php
// Verifica o parâmetro na URL
if (isset($_GET['versao']) && $_GET['versao'] == 'beta') {
    // Redireciona para a versão beta
    header("Location: https://beta.novosite.com");
    exit();
} else {
    // Redireciona para a versão normal
    header("Location: https://www.novosite.com");
    exit();
}
?>

Aqui, se a URL contiver ?versao=beta, o usuário será redirecionado para a versão beta do site.

Passo 4: Redirecionamento com temporizador (Meta Refresh)

Se você deseja fazer um redirecionamento com um atraso de alguns segundos, você pode utilizar a função header() com a opção de atraso, ou fazer isso diretamente no HTML usando a tag <meta>.

// Redireciona após 5 segundos em PHP
header("refresh:5;url=https://www.novosite.com");
exit();

Ou, no HTML, você pode usar a seguinte tag dentro do <head>:

<meta http-equiv="refresh" content="5; url=https://www.novosite.com">

Neste exemplo, o redirecionamento acontecerá após 5 segundos, o que pode ser útil em páginas de agradecimento ou mensagens de erro.

Cuidados ao usar redirecionamentos

  1. Sempre use exit() após o header(): Isso impede que o script continue sendo executado após o redirecionamento;

  2. Evite loops de redirecionamento: Certifique-se de que as condições de redirecionamento não criem um ciclo infinito, onde o usuário é redirecionado repetidamente entre páginas;

  3. HTTPS e segurança: Ao redirecionar usuários, especialmente para páginas de login ou áreas sensíveis, assegure-se de usar URLs seguras com https.

O redirecionamento em PHP é uma funcionalidade poderosa e amplamente utilizada em desenvolvimento web.

Seja para direcionar usuários para a versão correta de um site, personalizar a experiência com base no idioma ou dispositivo, ou simplesmente redirecionar após login, o PHP fornece ferramentas simples e eficazes para fazer isso.

QUER APRENDER PHP ORIENTADO A OBJETOS OU APERFEIÇOAR O QUE JÁ SABE?

Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO e usando orientação a objetos de uma forma fácil de entender.

CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões sobre como redirecionar versões de sites em PHP? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags:

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *