Cuando tenemos un cambio de software o un cambio en el tipo de urls de tu dominio o incluso un cambio de dominio, es importante saber a donde van a ir las paginas que tenias antes y redireccionarlas a sus nuevos nombres, sobre todo para aprovechar posibles posicionamientos en buscadores, links de otras páginas y todas esas cosas tan importantes para poder seguir manteniendo el trafico de tu web.
Para ello tendremos que tener un listado en que tendremos las urls antiguas y las nuevas. Podemos hacer las redirecciones de varias maneras .htaccess (Apache) redirección por PHP
Pero el problema gordo viene después de hacer todas estas redirecciones, hay que comprobarlas una a una y es un trabajo realmente agotador, ya que dependes de muchos factores: la cache de navegador, los despistes, que somos humanos y posibles errores de la herramienta que utilicemos como firebug (pestaña de red).
Bien pues para ahorrarnos ese trabajo solo tenemos que tener un archivo con 2 columnas una la url vieja y otro columna la nueva separadas por un tabulador.
He preparado este sencillo código que hace uso de la librería curl con el que podremos manejar las cabeceras de la página:
GeSHi © 2004-2007 Nigel McNie, 2007-2010 Benny Baumann, 2008-2009 Milian Wolff
-
<?php
-
-
function comprueba($url,$codigo_pretendido=200,$url_pretendida='',$dominio=''){
-
-
// Establecer URL
-
-
// establecemos que no devuelva el header en el output
-
-
// solo devuelve el html si se lo pedimos explicitamente,
-
// sino saldria por pantalla
-
-
// Ejecuta la llamada
-
-
// Cerrar el recurso cURL y liberar recursos del sistema
-
-
// devuelve toda la informacion posible de la petición
-
-
-
$error=false;
-
if($info['http_code']!=$codigo_pretendido){
-
echo "CODIGO ERROR ".$url."\t #### ".$info['http_code']."\n";
-
$error=true;
-
}
-
$url_final=str_replace($dominio,'',$info['redirect_url']);
-
if($url_final!=ltrim($url_pretendida,'/')){
-
-
$url_final=str_replace($dominio,'',$info['redirect_url']);
-
echo "URL ERROR ".$url_pretendida." ### ".$url_final."\n";
-
$error=true;
-
}
-
if($error==false){
-
echo "CORRECTA ".$url.' correcta'."\n";
-
}
-
}else{
-
echo $url.' ERROR en la llamada'."\n";
-
}
-
-
}
-
$dominio="http://www.dominio.com/";
-
$redirecciones=file('redirecciones.txt');
-
foreach($redirecciones as $fila){
-
-
-
-
if($explode[0]==$explode[1]){
-
echo "CORRECTA son la misma url \n";
-
}else{
-
comprueba
($dominio.ltrim($explode[0]),301,$explode[1],$dominio);
-
}
-
}
-
-
?>