Anda di halaman 1dari 3

PHP - Redireccionar a otra pgina web

Junio 2014
Cualquier webmaster puede decidir un da que uno de sus archivos tiene un nombre que no le conviene o que el
rbol de directorios de los archivos debe ser modificado. Sin embargo, si es relativamente fcil cambiar los
enlaces al interior de un sitio web, es mucho ms difcil cambiar los enlaces externos hacia otros sitios web. Por
otra parte, cuando cambiamos de ubicacin las pginas, los motores de bsqueda pueden enviar a los usuarios
al vacio o, peor aun, reinicializar todo el posicionamiento de la pgina.
Felizmente, existe una solucin simple: la redireccin permite mantener la lgica de la navegacin (y del
posicionamiento) de un sitio web, incluso si todos los archivos ha cambiado de lugar.
Redireccin simple
Ruta relativa/absoluta
Encabezados HTTP
Redirecciones temporales/definitivas
Ejemplo
Interpretacin del cdigo PHP
Ver tambin

Redireccin simple
Para redireccionar al visitante hacia otra pgina (especialmente til en un bucle condicional), slo hay que
utilizar el cdigo siguiente:
<?php
header('Location: mipagina.php');
?>
Donde mipagina representa la direccin de la pgina hacia la que se quiere redireccionar. Esta direccin puede
ser absoluta y puede tener parmetros de la forma mipagina.php?param1=val1m2=val2).

Ruta relativa/absoluta
Tericamente, es mejor preferir una ruta absoluta desde la raz del servidor (DOCUMENT_ROOT), de la forma
siguiente:
<?php
header('Location: /repertoire/mapage.php');
?>
Si la pgina 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, segn el protocolo HTTP, los encabezados HTTP deben ser
enviados antes que cualquier otro tipo de contenido, lo que significa que ningn carcter debe ser enviado antes
del llamado de la funcin header, ni siquiera un espacio! En otras palabras, la funcin header()
necesariamente debe ser utilizada antes de cualquier cdigo HTML. Para mayor informacin, leer este
artculo: error Headers already sent by.....

Redirecciones temporales/definitivas
Por defecto, el tipo de redireccin presentada lneas arriba es una redireccin temporal. Lo que significa que los
motores de bsqueda como Google no la toman en cuenta para el posicionamiento. Por ello, si deseamos
indicar a los motores de bsqueda que la pgina A est ahora en la ubicacin B, debemos utilizar el siguiente
cdigo al inicio del archivo PHP correspondiente a la pgina A:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: direccion_de_la_pagina_B);
?>

Ejemplo
La pgina http://www.commentcamarche.net/pc/imprim.php3 tiene el cdigo siguiente:
<?
header( "Status: 301 Moved Permanently", false, 301);
header("Location: /pc/imprimante.php3");
exit();
?>
De este modo, cuando se haga clic en el enlace de arriba, seremos automticamente trasferido a la pgina
http://www.commentcamarche.net/pc/imprimante.php3 Esta es una redireccin permanente (Status: 301 Moved
Permanently). Por ello, si ingresamos la primera URL en Google, ste dar como resultado la direccin de la
segunda, esto prueba que ha tomado en cuenta la redireccin: http://www.google.fr/search?
hl=fr&q=http%3A%2F%2Fwww.commentcamarche.net%2Fpc%2Fimprim.php3&btnG=Recherche+Google&meta=

Interpretacin del cdigo PHP


El cdigo PHP situado despus del llamado a la funcin header() ser interpretado por el servidor, incluso si el
visitante ya ha partido a la direccin especificada en la redireccin, lo que significa que en la mayora de casos
tendremos inters en poner la funcin exit() despus de la funcin header() para no hacer trabajar el servidor por
gusto:
<?
header('Status: 301 Moved Permanently', false, 301);
header('Location: direccion);
exit();
?>

Ver tambin

Protocolo HTTP
Cmo redireccionar
Como complemento: Pgina de la documentacin oficial de PHP acerca de la funcin header()
http://www.php.net/manual/es/function.header.php
Este documento intitulado PHP - Redireccionar a otra pgina web de Kioskea (es.kioskea.net) esta puesto a diposicin bajo la
licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible.

Anda mungkin juga menyukai