Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/02/2011, 22:52
hibam
 
Fecha de Ingreso: mayo-2009
Mensajes: 75
Antigüedad: 15 años
Puntos: 2
Respuesta: Ruta de las subpaginas

Yo una vez hice algo parecido y no quise proponerte mi solución porque pensé que era más complicado lo que querías. Aquí dejo mi aporte, es una traducción y adaptación a mis necesidades.

Solución

Después de una larga busqueda que duró casi un día encontramos la respuesta en un blog (creditos al final) y aquí la tenemos:

Código PHP:
Ver original
  1. <?php
  2.     $redirect = false;
  3.     $path = $_SERVER['REQUEST_URI'];
  4.     if ($path == '/oldpath.php') {
  5.     $path = '/newpath';
  6.     $redirect = true;
  7.     }
  8.     $url = $_SERVER['HTTP_HOST'];
  9.     if ($url!='http://viejositio.com') {
  10.     $redirect = true;
  11.     }
  12.     if ($redirect==true){
  13.     header('HTTP/1.1 301 Moved Permanently');
  14.     header('Location: http://nuevositio.com' .$path);
  15.     }
  16.     ?>

Cada vez que alguien pide una página que fue movida al dominio nuevo, este script en php redirige al navegador automaticamente, de ese modo no perdemos ninguna visita y tampoco causamos molestias a los usuarios. Otra ventaja es que si alguien busca algo que no se encuentra en el sitio viejo ni en el nuevo, el scrip no interfiere con la página de error 404 del sitio viejo ni del nuevo y se muestra el archivo 404 por defecto sin ningún problema. Además, por ser un script en php es tan rápido que el usuario ni siquiera nota que ha sido redirigido y lo mejor es que no necesitas tener acceso al direcrotio raíz del servidor. Casi lo olvido es lo ideal para no afectar al SEO de la página ni el page rank.

Explicación del código (opcional)

Código PHP:
Ver original
  1. <?php <!-- comienza el script en php -->
  2.     $redirect = false; <!-- asigna la variable "false" $redirect -->
  3.     $path = $_SERVER['REQUEST_URI']; <!-- asigna la url que pidio el usuario a la variable $path -->
  4.     if ($path == '/oldpath.php') { <!-- pregunta si $path es igual a /oldpath.php de no ser as&#237; entonces -->
  5.    $path = '/newpath'; <!-- asigna /newpath a $path -->
  6.     $redirect = true; <!-- asigna true a redirect y redirije -->
  7.     }
  8.     $url = $_SERVER['HTTP_HOST']; <!-- asigna la url que pidio el usuario a la variable $url -->
  9.     if ($url!='http://viejositio.com') { <!-- si se asigna http://viejositio.com a la variable url entonces -->
  10.     $redirect = true; <!-- redirige -->
  11.     } <!-- se cierra la condici&#243;n -->
  12.    if ($redirect==true){ <!-- si se redirije la p&#225;gina entonces -->
  13.    header('HTTP/1.1 301 Moved Permanently'); <!-- avisa al navegador o a google que la p&#225;gina fue movida -->
  14.    header('Location: http://nuevositio.com' .$path); <!-- redirije el navegador a la direcci&#243;n http://nuevositio.com más lo que tenga la variable $path -->
  15.    } <!-- fin de la condici&#243;n -->
  16.    ?> <!-- cierra el scrip de php -->

Esto me funcionó perfecto desde el primer intento si alguien tiene alguna duda que pregunte, será un gusto ayudarles. Cualquier corrección les ruego me hagan saber.

Créditos del script original en PHP: fl1p