Estoy implementando un sitio de reemplazo para un cliente, pero no quieren que todas sus páginas antiguas terminen en 404. Mantener la antigua estructura de URL no era posible porque era espantoso.
Así que estoy escribiendo un controlador 404 que debería buscar una página antigua que se solicita y hacer un redireccionamiento permanente a la nueva página. El problema es que necesito una lista de todas las URL de las páginas antiguas.
Podría hacer esto manualmente, pero me interesaría si hay alguna aplicación que me proporcione una lista de URL relativas (por ejemplo: / página / ruta, no http: /.../ página / ruta) que acaba de dar la página de inicio página. Como una araña, pero a la que no le importa el contenido más que buscar páginas más profundas.
fuente
Respuestas:
No quise responder mi propia pregunta, pero solo pensé en ejecutar un generador de mapas del sitio. El primero que encontré http://www.xml-sitemaps.com tiene una buena salida de texto. Perfecto para mis necesidades.
fuente
hacer
wget -r -l0 www.oldsite.com
Entonces solo
find www.oldsite.com
revelaría todas las URL, creo.Alternativamente, ¡solo envíe esa página personalizada no encontrada en cada solicitud 404! Es decir, si alguien usaba el enlace incorrecto, obtendría la página diciendo que no se encontró la página y dando algunas pistas sobre el contenido del sitio.
fuente
include
/require
/ etc. ensamblaje de páginas, esto realmente no funcionará.Aquí hay una lista de generadores de mapas de sitios (de los cuales, obviamente, puede obtener la lista de URL de un sitio): http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators
fuente
Lo mejor que he encontrado es http://www.auditmypc.com/xml-sitemap.asp, que usa Java y no tiene límite en las páginas, e incluso le permite exportar resultados como una lista de URL sin procesar.
También utiliza sesiones, por lo que si está utilizando un CMS, asegúrese de haber cerrado la sesión antes de ejecutar el rastreo.
fuente
Entonces, en un mundo ideal, tendría una especificación para todas las páginas de su sitio. También tendría una infraestructura de prueba que podría llegar a todas sus páginas para probarlas.
Es de suponer que no estás en un mundo ideal. ¿Por qué no hacer esto ...?
Cree un mapeo entre las URL antiguas conocidas y las nuevas. Redirigir cuando vea una URL antigua. Posiblemente consideraría presentar un "esta página se ha movido, su nueva URL es XXX, será redirigido en breve".
Si no tiene mapeo, presente un mensaje de "lo siento, esta página se ha movido. Aquí hay un enlace a la página de inicio" y rediríjalo si lo desea.
Registra todos los redireccionamientos, especialmente los que no tienen mapeo. Con el tiempo, agregue asignaciones para las páginas que son importantes.
fuente
wget de una caja de Linux también podría ser una buena opción ya que hay conmutadores a spider y cambian su salida.
EDITAR: wget también está disponible en Windows: http://gnuwin32.sourceforge.net/packages/wget.htm
fuente
Escriba una araña que lea en cada html del disco y genere cada atributo "href" de un elemento "a" (se puede hacer con un analizador). Tenga en cuenta qué enlaces pertenecen a una página determinada (esta es una tarea común para una estructura de datos MultiMap). Después de esto, puede producir un archivo de mapeo que actúa como entrada para el controlador 404.
fuente
Buscaría varias herramientas de generación de mapas de sitios en línea. Personalmente, he usado este (basado en Java) en el pasado, pero si buscas en Google "creador de mapas de sitios", estoy seguro de que encontrarás muchas opciones diferentes.
fuente