10
Gracias

Unas palabras de agradecimiento nunca están de más.

Redireccionar a una página en PHP

Un webmaster puede darse cuenta en algún momento de que uno de sus archivos tiene un nombre equivocado o que el árbol de directorios de este debe ser modificado. Sin embargo, aunque es relativamente sencillo cambiar los enlaces locales (dentro de una misma web), puede resultar más complicado cambiar aquellos dirigidos hacia páginas de otros sitios web, conocidos como enlaces externos.
Por otra parte, cuando las páginas se cambian de ubicación, los motores de búsqueda pueden enviar a los usuarios al ya conocido error 404 o, peor aún, actualizan a cero todo el posicionamiento de la página. Afortunadamente existe una solución simple: el redireccionamiento de enlace, que permite que una página web dirija a un dominio o a una URL concreta y, así, mantener la lógica de la navegación (y del posicionamiento) de un sitio web, incluso si todos los archivos han cambiado de lugar.





Redireccionamiento simple

Para redireccionar al visitante a otra página utilizando un script PHP, utilizaremos el elemento header():

<?php
header('Location: [http://www.mipagina.com/%27) http://www.mipagina.com/')];
exit;
?>


Donde http://www.mipagina.com/ es una dirección absoluta y representa la dirección de la página hacia la que quieres redireccionar.

Es muy importante tener en cuenta que el encabezado de ubicación debe de ser llamado antes de mostrar cualquier información por pantalla (código HTML, espacios en blanco…).

El código PHP situado después del llamado a la función header() será interpretado por el servidor, incluso si el visitante ya ha partido a la dirección especificada en el direccionamiento, lo que significa que en la mayoría de casos tendrás interés en poner la función exit() después de la función header() para no hacer trabajar al servidor inútilmente.

Ruta relativa/absoluta

A la hora de hacer la llamada se debe prestar atención a si la ruta que se va a mencionar va a ser absoluta o relativa.

Si empleamos el elemento header(), hay que tener en cuenta que para algunos navegadores la URL que se desea redireccionar no puede ser relativa, teniendo esta que ser absoluta.

La ruta absoluta es aquella que contiene el nombre completo del dominio (incluyendo el protocolo http), mientras que la relativa está formada a partir de la anterior, pero prescindiendo de ciertas partes del recurso enlazado. Estas últimas son útiles para ahorrar tiempo, pero se requiere de información adicional para localizar el recurso deseado.

Veamos las diferencias con dos ejemplos:


Redirecciones temporales/permanentes

Las tres redirecciones más utilizadas se pueden diferenciar en temporales y permanentes. Estas son: 301, 302 y 307.

La redirección 301 es <bold>permanente, lo cual quiere decir que la página ha sido movida de manera irreversible a otra página. El contenido eliminado es sustituido por el nuevo.

A continuación mostramos cómo realizar esta redirección con PHP:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: [http://www.mipaginanueva.com%22) http://www.mipaginanueva.com")];
?>


Las redirecciones 302 y 307 son temporales. En este caso, la URL de origen sigue existiendo pero se debe trasladar a otra de manera temporal, con la intención de recuperarla más adelante.

La diferencia entre ambas es que en la 307, a diferencia de la 302, se indica que el contenido ha desaparecido temporalmente, se trata de una redirección identificada.

Veamos el código PHP de la redirección temporal:

<?php
header("HTTP/1.1 302 Moved Temporarily");;
header("Location: [http://www.mipaginanuevatemporal.com%22) http://www.mipaginanuevatemporal.com")];
?>

Foto: © Tim Gouw - Unsplash
10
Gracias

Unas palabras de agradecimiento nunca están de más.

Haz una pregunta
Nuestros contenidos son redactados en colaboración con expertos del ámbito tecnológico bajo la dirección de Jean-François Pillou, fundador de CCM.net. CCM es un sitio de tecnología líder a nivel internacional y está disponible en 11 idiomas.
Consulta también
El documento « Redireccionar a una pagina en PHP » se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.
1 Comentario

¡Suscríbete a nuestra Newsletter!

Recibe nuestros mejores artículos

¡Suscríbete a nuestra Newsletter!