Redirect em PHP

De Wiki Locaweb
Edição feita às 12h13min de 3 de março de 2011 por Rheise (disc | contribs)

(dif) ← Edição anterior | ver versão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Redirecionamento de páginas em PHP

Para fazer com que o usuário ao acessar um determinado endereço do seu site seja redirecionado para outro endereço, dentro ou fora do seu site, você deverá utilizar o parametro location: da função header(). Abaixo segue um exemplo de uso básico desta função:


<?php
 #abaixo, criamos uma variavel que terá como conteúdo o endereço para onde haverá o redirecionamento:  
 $redirect = "http://www.locaweb.com.br";
 
 #abaixo, chamamos a função header() com o atributo location: apontando para a variavel $redirect, que por 
 #sua vez aponta para o endereço de onde ocorrerá o redirecionamento
 header("location:$redirect");
 
?>


Da maneira como esta acima, sempre que o usuário acessar a página que contém o código acima, ele será redirecionado automaticamente para http://www.locaweb.com.br.

O redirecionamento não se restringe a endereços absolutos de sites, sendo que você também pode redirecionar para pastas dentro do seu FTP, ou mesmo arquivos que estão na mesma pasta utilizando um caminho relativo a ela.

Para melhor exemplificar isto, vamos criar um script que irá capturar o endereço pelo qual esta acessado, e redirecionar o usuário para outro conforme este endereço de acesso.


<?php
 #atribui para a váriavel $servidor o conteúdo da váriavel de ambiente $_SERVER["SERVER_NAME"], que por sua vez 
 #contém o endereço pelo qual o site foi acessado
 $servidor = &$_SERVER["SERVER_NAME"];
 
switch ($servidor) { #verifica a variavel $servidor
 
    case "cliente.seudominio.com.br": #se $servidor igual cliente.seudominio.com.br
     unset($servidor);  #apaga a variavel $servidor, para otimizar o uso de memória uma vez que ela não será mais usada
        header("location:http://seudominio.com.br/cliente");  #e faz um redirect para http://seudominio.com.br/cliente
                break;
 
    case "fornecedores.seudominio.com.br":
     unset($servidor);
        header("/fornecedores"); #redireciona para o diretorio fornecedores, dentro da raiz (/) do site
                break; 
 
    case "adm.seudominio.com.br":
     unset($servidor);
        header("location:../adm"); #direciona para a pasta adm, que esta um diretório abaixo (../) do atual
                break;
 
    case "diretoria.seudominio.com.br":
     unset($servidor);
        header("location:diretoria.html"); #direciona para o arquivo diretoria.html dentro do mesmo diretorio do arquivo atual
                break;
 
   default: #caso não seja nenhum dos endereços acima
        header("location:/"); #direciona para a raiz do site
		break;
}
?>


Lembrando que para o script acima funcionar, todas as entradas usadas no script deverão estar criadas no DNS. Caso tenha duvida de como fazer isto, leia este documento.

Veja também

Links

Ferramentas pessoais
Espaços nominais

Variantes
Ações
Navegação
Ferramentas
Criar um livro