Documentación · Guías
Migrar desde Joomla
Cómo reconstruir con Ehundu un sitio hecho con Joomla, conservando sus direcciones, y qué redirigir en el .htaccess.
Versión 0.16
De Joomla no se migra: se reconstruye. El contenido vive en una base de datos, el aspecto en una plantilla que casi nadie ve entera, y no hay nada que se parezca a un fichero de partida. Lo que tienes es el sitio tal como lo ve un visitante, y esa es tu referencia. Así se hicieron Vía de Bayona Bureba, con 188 páginas y un blog de 2010 a 2016, y Kerizara, en castellano y en euskera.
Guarda el sitio antes de tocarlo¶
Empieza por bajarte el sitio en vivo, con todas sus páginas y sus recursos. Un rastreador lo hace; wget vale:
wget --mirror --page-requisites --adjust-extension https://www.ejemplo.com/
Esa copia es la referencia con la que vas a comparar, y lo único que quedará del sitio anterior el día que lo apagues. Guárdala con el proyecto.
Hay cosas que el rastreador no ve y que se bajan aparte. Los listados con paginación, como el de un blog (?start=5), y los listados por etiqueta: Joomla los corta en 20 artículos sin enseñar la paginación, y con ?limit=0 los da enteros. Y las imágenes que solo nombra el JavaScript, como las de un carrusel.
Texto a Markdown, diseño desde cero¶
Con el HTML guardado, un script de pocas líneas saca el texto de cada página a un fichero Markdown. Es un primer borrador: se repasa a mano, porque el HTML de Joomla trae de todo. Las plantillas y el CSS se escriben de nuevo, con los valores del original (colores, medidas, espacios), y se comprueba lado a lado en el navegador, en escritorio y en móvil.
Reproduce la tipografía que se ve, no la que pide la plantilla. Puede ocurrir que una plantilla de Joomla pidiera una letra con serifa que ningún visitante llegó a ver, porque el visitante veía otra.
Es buen momento para quitar lo que sobra. Si las tipografías van en el propio sitio, los iconos en SVG y los botones de compartir son enlaces normales, el sitio no necesita cookies de nadie, y puedes quitar el aviso, siempre que la política de cookies lo diga.
Conserva las direcciones¶
Si las direcciones no cambian, no hay nada que redirigir ni posicionamiento que perder. Conserva las rutas de las páginas, con la referencia de las direcciones en la mano, y las de las imágenes: lo que estaba en images/ se queda en publico/images/.
Lo que sí cambia, y se redirige en el .htaccess de publico/. Los canales RSS y Atom de Joomla (/blog?format=feed&type=rss) pasan al feed nuevo:
RewriteCond %{QUERY_STRING} (^|&)format=feed(&|$) [NC]
RewriteRule ^ /feed.xml? [R=301,L]
El ? del final de la regla quita la consulta de la dirección nueva. Si el castellano iba en /es/ y ahora va en la raíz, y si quedan direcciones con index.php:
RewriteRule ^es/?$ https://%{HTTP_HOST}/ [R=301,L]
RewriteRule ^es/(.+?)/?$ https://%{HTTP_HOST}/$1/ [R=301,L]
RewriteRule ^index\.php$ https://%{HTTP_HOST}/ [R=301,L]
Las páginas de Joomla solían ir sin la barra final. Ehundu las escribe con ella, y esta regla da el salto en uno solo, con HTTPS:
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [R=301,L]
Las direcciones completas, con https:// y el dominio, evitan que Apache complete una ruta con http y la visita dé un salto de más. Y si el sitio es de varios idiomas, Varios idiomas explica cómo se organiza: el predeterminado sin prefijo y los demás bajo /eu/, por ejemplo.
Los formularios y lo que queda en el servidor¶
Un formulario de Joomla procesa el envío con PHP, y un sitio estático no tiene PHP. Hace falta un servicio de formularios que reciba el envío y lo mande por correo; Ehundu no incluye ninguno.
Y recuerda que Joomla sigue en el servidor. Al desplegar, sus ficheros se quedan donde estaban, porque Ehundu solo borra lo que subió él. Cuando compruebes que el sitio nuevo funciona, haz una copia y quita el Joomla viejo, con su index.php y su carpeta de administración: un Joomla que nadie actualiza es un riesgo. Si queda alguno suelto, un DirectoryIndex index.html en el .htaccess asegura que la portada sea la nueva.
Despliega primero a una dirección de pruebas, repasa las páginas con la referencia al lado y, cuando todo cuadre, cambia el dominio. La guía Desplegar el sitio cuenta cómo.