> Manuales > Manual de PHP

Cómo redireccionar con PHP utilizando la función header(). Veremos los dos tipos de redirección principales: 301, permanente, y 302, temporal.

Redirección PHP

En este artículo vamos a ver uno de los usos principales de la función header() de PHP, que consiste en redireccionar al usuario a otra URL distinta. Lo veremos con ejemplos de las redirecciones más comunes, explicando sus significados y cómo pueden afectar estos tipos de redirecciones al SEO.

Qué es una redirección

Una redirección sirve para llevar al navegador del usuario a una página distinta. Redirigir al navegador nos proporciona la posibilidad de enviarlo a otra dirección URL distinta donde están los contenidos que desea ver, o al lugar donde se han movido las páginas que ha solicitado.

Existen dos tipos de redirecciones principales:

Redirecciones y SEO

El usuario que nos visita no percibe si estamos haciendo una redirección de un tipo u otro por PHP, pero el tipo de redirección utilizada si resulta una información interesante para buscadores.

Cuando hacemos una redirección 302 le estamos diciendo a Google que el recurso que se consulta ha cambiado solo temporalmente. En cambio, si la redirección es 301 le estamos diciendo que el cambio de la URL va a ser permanentemente, lo que le servirá para tener actualizadas sus bases de datos de páginas indexadas.

Si quieres saber más sobre las implicaciones de estos tipos de redirecciones para el SEO visita la FAQ: Diferencias entre redirección 301 y 302.

Función header() de PHP para redireccionar

Con PHP podemos redirigir al navegador con la función header(), que envía informaciones en las cabeceras del HTTP.

Una redirección con PHP se haría con algo como esto:

header("Location: http://www.una-redireccion-cualquiera.com");

Por defecto PHP realiza una redirección temporal, de tipo 302. Es decir, la redirección realizada con el anterior estaría diciendo a Google que el recurso al se ha intentado acceder solamente ha cambiado por un tiempo.

Si queremos redireccionar de manera permanente debemos hacer explícita la cabecera de redirección que se debe enviar al navegador. Para indicarle otro tipo de redirección usamos también la función header(), indicando el tipo antes de hacer el Location.

Para hacer una redirección 301 (permanente), utilizaremos un código PHP como este:

header("HTTP/1.1 301 Moved Permanently");
header("Location: nueva_pagina.html");

Como has podido apreciar, tenemos que usar dos veces la función header() de PHP, la primera para indicar la cabecera del tipo de redirección y la segunda para indicar a dónde debe moverse el navegador del usuario.

Como hemos dicho antes, si no indicamos nada la redirección sería con 302, pero podemos hacer también explícito con PHP el hecho de que ésta sea simplemente temporal. Para ello usamos un código así:

header("HTTP/1.1 302 Moved Temporarily");
header("Location: nueva_pagina.html");

Conclusión

Hemos aprendido a redirigir al usuario hacia otra página. Este tipo de redirección afectará a la URL que se muestra en la barra de direcciones y el usuario apreciará que se le ha enviado automáticamente a un nuevo lugar.

Hemos aprendido qué significado tiene cada uno de los dos tipos de redirección. Si es algo temporal, debemos redireccionar siempre con 302 porque así podremos cambiar esa redirección más adelante hacia otro lugar. De cara a buscadores si la URL ha cambiado para siempre es importante hacer una redirección de tipo permanente (301), teniendo en cuenta que siempre deberían mantener esa nueva localización.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual