Test de redirección web
FR EN ES

Prueba tus redirecciones web y respuestas HTTP



La redirección en PHP

PHP envía cabeceras HTTP mediante la función header(). Debe llamarse antes de cualquier salida, incluso los espacios o saltos de línea situados antes de la etiqueta <?php.


Redirección permanente 301 en PHP

Colócalo al inicio del archivo:

Sintaxis moderna (PHP 5.4+, recomendada):

<?php
http_response_code(301);
header("Location: https://www.ejemplo.net/nueva-pagina.php");
exit();
?>

Sintaxis alternativa (compatible con todas las versiones de PHP):

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.ejemplo.net/nueva-pagina.php");
exit();
?>


Redirección temporal 302 en PHP

Por defecto, PHP envía un código 302 cuando se usa header("Location: ..."):

<?php
header("Location: https://www.ejemplo.net/directorio/pagina.php");
exit();
?>

Para ser explícito (recomendado):

<?php
http_response_code(302);
header("Location: https://www.ejemplo.net/directorio/pagina.php");
exit();
?>


Redirección condicional en PHP

Redirigir según el idioma del navegador:

<?php
$idioma = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if ($idioma == 'es') {
    header("Location: https://www.ejemplo.net/es/");
    exit();
}
?>

Redirigir conservando los parámetros GET:

<?php
$params = !empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : '';
http_response_code(301);
header("Location: https://www.ejemplo.net/nueva-pagina.php" . $params);
exit();
?>