Mirror del Joomla antiguo: versionar los scripts y reponer los assets que faltaban

Los scripts del mirror (00-90) vivian solo en el disco. Van al repo; los datos que
generan no (16 GB entre crawl, snapshot del origen y Joomla restaurado) -> .gitignore.

Nuevo 91-repone-assets404.sh: repone los ficheros que el crawl no capturo porque se
referencian SOLO desde CSS y el crawler seguia enlaces HTML (system.css, los fondos de
fe_adulta_1, ratingstars.gif de K2). Salian como 404 en los logs de nginx del Hetzner.

Descarga por HTTP desde el Joomla local aislado, nunca del filesystem -- mismo principio
que el crawl, para no arrastrar los .php comprometidos del #183 -- y escanea PHP embebido
antes de copiar a site/.

Resultado sobre las 286 rutas unicas con 404 del log: 196 repuestas y verificadas en
produccion (196/196 en 200 tras el rsync), 82 que dan 301->404 tambien en el origen (ya
estaban rotas en la web original) y 8 rutas basura /%22/... de HTML mal formado.

Refs #180

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-31 14:04:31 -04:00
parent 69e849d38e
commit 275aff1430
71 changed files with 2667 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex, nofollow">
<title>Página no encontrada · Page not found — Archivo de feadulta.com</title>
<style>
:root { color-scheme: light dark; }
* { box-sizing: border-box; }
body {
margin: 0; padding: 2.5rem 1.25rem;
font-family: Georgia, "Times New Roman", serif;
line-height: 1.65; color: #2e2a25; background: #f7f4ef;
display: flex; justify-content: center;
}
.caja { max-width: 40rem; width: 100%; }
.codigo {
font-size: .8rem; letter-spacing: .18em; text-transform: uppercase;
color: #9a8f80; margin: 0 0 .5rem;
}
h1 { font-size: 1.7rem; line-height: 1.25; margin: 0 0 1rem; font-weight: normal; }
p { margin: 0 0 1rem; }
.acciones { margin: 1.75rem 0; display: flex; flex-wrap: wrap; gap: .75rem; }
a.boton {
display: inline-block; padding: .7rem 1.3rem; border-radius: 3px;
text-decoration: none; font-family: system-ui, sans-serif; font-size: .95rem;
}
a.principal { background: #7a1f1f; color: #fff; }
a.secundario { background: transparent; color: #7a1f1f; border: 1px solid #c9b8a8; }
a.boton:hover { opacity: .88; }
hr { border: 0; border-top: 1px solid #ddd3c6; margin: 2.25rem 0; }
.en { color: #5d564e; }
.nota { font-size: .88rem; color: #8a8078; }
@media (prefers-color-scheme: dark) {
body { background: #17150f; color: #e6ddd0; }
.codigo { color: #7d7365; }
a.principal { background: #a83232; }
a.secundario { color: #d8a7a7; border-color: #4a4238; }
hr { border-top-color: #383226; }
.en { color: #b3a89a; }
.nota { color: #857c70; }
}
</style>
</head>
<body>
<div class="caja">
<p class="codigo">Error 404</p>
<h1>Esta página no está en el archivo</h1>
<p>Estás en el <strong>archivo histórico de feadulta.com</strong>: una copia de solo lectura de
la web antigua, conservada tal y como estaba. No se actualiza y no admite búsquedas ni
formularios.</p>
<p>La dirección que has seguido no existe aquí. Puede que el enlace esté mal escrito, que la
página se retirase antes de hacer esta copia, o que su contenido viva ahora en la web nueva.</p>
<div class="acciones">
<a class="boton principal" href="/es/">Ir al inicio del archivo</a>
<a class="boton secundario" href="https://www.feadulta.com/">Ir a feadulta.com</a>
</div>
<hr>
<div class="en" lang="en">
<p class="codigo">Error 404</p>
<h1>This page is not in the archive</h1>
<p>You have reached the <strong>historical archive of feadulta.com</strong>: a read-only copy
of the old website, kept as it was. It is not updated, and search and forms do not work.</p>
<p>The address you followed does not exist here. The link may be mistyped, the page may have
been removed before this copy was made, or its content may now live on the new website.</p>
<div class="acciones">
<a class="boton principal" href="/es/">Go to the archive home</a>
<a class="boton secundario" href="https://www.feadulta.com/">Go to feadulta.com</a>
</div>
</div>
<hr>
<p class="nota">Archivo estático · Static archive — feadulta.com</p>
</div>
</body>
</html>