[PHP] Redireccionar a otra página web

última actualización el 11 de agosto de 2008, 21:34 por Carlos-vialfa
Publicado por Carlos-vialfa
Cualquier webmaster puede decidir un día 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 fácil cambiar los enlaces al interior de un sitio web, es mucho más difícil cambiar los enlaces externos hacia otros sitios web. Por otra parte, cuando cambiamos de ubicación las páginas, los motores de búsqueda pueden enviar a los usuarios al vacio o, peor aun, reinicializar todo el posicionamiento de la página.

Felizmente, existe una solución simple: la redirección permite mantener la lógica de la navegación (y del posicionamiento) de un sitio web, incluso si todos los archivos ha cambiado de lugar.



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.

Para mayor información, leer este artículo: error “Headers already sent by.....”

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);
?>

Ejemplo


La página http://www.commentcamarche.net/pc/imprim.php3 tiene el código 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 automáticamente trasferido a la página
http://www.commentcamarche.net/pc/imprimante.php3

Esta es una redirección permanente (Status: 301 Moved Permanently). Por ello, si ingresamos la primera URL en Google, éste dará como resultado la dirección de la segunda, esto prueba que ha tomado en cuenta la redirección:
http://www.google.fr/search?hl=fr&q=http%3A%2F%2Fwww.commentcamarche.net%2Fpc%2Fimprim.php3&btnG=Recherche+Google&meta=

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();
?>

Ver también



PD: El artículo original fue escrito por Thom@s contribuidor de CommentCaMarche
Mejores respuestas para « Redireccionar a otra página web » en :
Insertar un documento PDF en nuestra página web Ver Índice: Inserta un documento PDF en tu página web Consejos Inserta completamente un documento PDF en tu página web Descarga del programa Convertir de formato PDF a SWF (Flash) Publicar el SWF Trucos Inserta un documento PDF en tu...
Cómo convertir una página web en PDF Ver Si queremos convertir una página web, un manual, nuestros emails en PDF, pero no sabemos como utilizar los programas que existen para ello, entonces podemos utilizar una página web que lo hace fácil y gratis. Esta página convierte la URL de...
¿Cómo sé si una página Web es segura? Ver ¿Cómo sé si una página Web es segura? Algunas páginas Web utilizan una conexión segura entre éstas y tu navegador. Esto es muy importante, por ejemplo, si deseas pagar en línea utilizando una tarjeta de crédito y deberás ingresar información...
[IE] Crear una tecla de acceso directo a una página Web VerSi deseas abrir rápidamente tu página web favorita entonces puedes crear una tecla de acceso directo a ella. Para ello, sigue estos pasos: Haces clic derecho sobre una zona de la página Web y seleccionas Crear acceso directo En la ventana que...
Javascript – Centrar verticalmente una página Web VerJavascript – Centrar verticalmente una página Web Tratar de centrar verticalmente una página Web con CSS es una perdida de tiempo. La solución más práctica consiste en utilizar JavaScript. 1. El archivo .js 2. La página .html 3. Uso 4....
Descargar Page Saver Basic VerLas herramientas de captura de pantalla se limitan a capturar sólo la parte visible de la pantalla. Sin embargo a veces necesitamos capturar completamente una página Web. Pearl Crescent Page Saver es un complemento para Mozilla Firefox que te...
Web - Marcadores VerMarcadores Cuando se navega por la Web es habitual encontrar un sitio o página Web interesante y querer anotar su dirección para regresar más adelante. Para esto se usan los marcadores (también llamados favoritos). Permiten crear un marcador virtual...
Administración de imágenes en HTML Ver¿Cómo mostrar imágenes en una página Web? Tener algunas imágenes en un sitio Web lo hace más atractivo e intuitivo. Sin embargo, es importante no excederse ya que las imágenes pueden llevar mucho tiempo en cargarse y, en algunos casos, pueden hacer...
Fondos VerInsertar una imagen de fondo Una imagen de fondo de una página Web puede aplicarse usando la etiqueta : Atributo Efecto visual BACKGROUND="imagen" Muestra la imagen como fondo BGCOLOR="nombre_del_color o #XXXXXX" Muestra...