Como criar redirecionamentos com PHP - redirect 301 e 302 com Header Location

Como criar redirecionamentos com PHP - redirect 301 e 302 com Header Location

Atualmente, muitos sites e sistemas são escritos em PHP (wordpress, magento, opencart, etc.) e saber fazer os redirecionamentos da maneira correta é essencial! Para criar um redirect com PHP podemos usar a função header passando a string Location.

Redirect 302 - Header Location

Quando queremos fazer o redirecionamento provisório de uma URL para outra utilizamos o redirect 302:

header("Location: https://www.webtutorial.com.br/", true, 302);

Caso não especifique o tipo do redirect, o padrão é o 302:

header("Location: https://www.webtutorial.com.br/");

Redirect 301 - Header Location

Quando usamos o redirect 301, informamos que a URL de origem não voltará a existir e será substituída pela nova.

header("Location: https://www.webtutorial.com.br/", true, 301);

Como fazer redirect de todas as páginas de um site para outro domínio usando PHP

No código abaixo vamos utilizar o $_SERVER[REQUEST_URI] para capturar o caminho atual da URL (tudo que vem depois do domínio) e vamos concatenar com o novo domínio.

<?php

$newUrl = "https://www.webtutorial.com.br".$_SERVER[REQUEST_URI];
header("Location: $newUrl", true, 301);
exit;

?>

Esse código deve ser colocado no início do index.php do seu site ou em um arquivo que seja executado no início de todas as páginas, na maioria dos casos esse arquivo se chama header.php.

Como redirecionar uma página específica usando PHP

Caso a página que você quer redirecionar não tem um arquivo .php específico para ela (como é na maioria dos casos), você pode filtrar a URL com uma regra condicional:

<?php

if ($_SERVER[REQUEST_URI] == "/categorias") {
    header("Location: /tags", true, 301);
    exit;
}

?>

Desta maneira, quando a página
https://www.webtutorial.com.br/categorias
for acessada, vai redirecionar para:
https://www.webtutorial.com.br/tags

Referências