Redirección simple
Para redireccionar al visitante hacia otra página (especialmente útil en un bucle condicional), sólo hay que utilizar el código siguiente:
<?php header('Location: mipagina.php'); ?>
Donde mipagina representa la dirección de la página hacia la que se quiere redireccionar. Esta dirección puede ser absoluta y puede tener parámetros de la forma mipagina.php?param1=val1¶m2=val2).
Ruta relativa/absoluta
Teóricamente, es mejor preferir una ruta absoluta desde la raíz del servidor (DOCUMENT_ROOT), de la forma siguiente:
<?php header('Location: /repertoire/mapage.php'); ?>
Si la página de destino estuviera en otro servidor, entonces indicar la URL completa, de la forma siguiente:
<?php header('Location: http://www.commentcamarche.net/forum/'); ?>
Encabezados HTTP
Las redirecciones son encabezados HTTP. Pero, según el protocolo HTTP, los encabezados HTTP deben ser enviados antes que cualquier otro tipo de contenido, lo que significa que ningún carácter debe ser enviado antes del llamado de la función header, ni siquiera un espacio!
En otras palabras, la función header() necesariamente debe ser utilizada antes de cualquier código HTML.
Redirecciones temporales/definitivas
Por defecto, el tipo de redirección presentada líneas arriba es una redirección temporal. Lo que significa que los motores de búsqueda como Google no la toman en cuenta para el posicionamiento.
Por ello, si deseamos indicar a los motores de búsqueda que la página A está ahora en la ubicación B, debemos utilizar el siguiente código al inicio del archivo PHP correspondiente a la página A:
<? header('Status: 301 Moved Permanently', false, 301); header('Location: direccion_de_la_pagina_B); ?>
Interpretación del código PHP
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 la redirección, lo que significa que en la mayoría de casos tendremos interés en poner la función exit() después de la función header() para no hacer trabajar el servidor por gusto:
<? header('Status: 301 Moved Permanently', false, 301); header('Location: direccion); exit(); ?>
Sin Comentarios