Invitaciones web para bodas, bautizos, comuniones, cumpleaños y cualquier evento. Web estática (HTML + CSS + JS) servida con Apache.
.
├── invitaciondigital.es/ # Raíz pública de la web (lo que se sube al servidor)
│ ├── index.html # Home de invitaciondigital.es
│ ├── assets/ # Recursos de la home
│ │ ├── css/style.css
│ │ ├── js/main.js
│ │ └── img/ # logo.png, logo.jpg (og:image)
│ ├── shared/ # Código común reutilizable por todas las invitaciones
│ │ └── js/countdown.js
│ ├── invitaciones/
│ │ └── AAAA/ # Una carpeta por año del evento
│ │ └── <slug>-DDMMAAAA/ # Una carpeta por invitación, autocontenida
│ │ ├── index.html
│ │ ├── style.css
│ │ ├── main.js
│ │ └── img/
│ ├── .htaccess # Redirecciones de URLs antiguas
│ └── robots.txt
├── plantilla-invitacion/ # Punto de partida para nuevas invitaciones (no se publica)
└── scripts/
└── AAAA/<slug>-DDMMAAAA.gs # Google Apps Script de la invitación (RSVP a Sheets...), no se publica
| Año | Evento | URL |
|---|---|---|
| 2026 | Boda Elena y Xavi (23/05/2026) | https://www.invitaciondigital.es/invitaciones/2026/elenaxavi-23052026/ |
| 2026 | Boda Ana y Sergi (12/09/2026) | https://www.invitaciondigital.es/invitaciones/2026/anasergi-12092026/ |
| 2027 | Boda Bruno y Nadia (10/07/2027) | https://www.invitaciondigital.es/invitaciones/2027/brunonadia-10072027/ |
<slug>-DDMMAAAA, en minúsculas, sin espacios ni tildes.
slug = nombres de los protagonistas o del evento (lauraypablo, comunionmarc, cumple40ana).invitaciondigital.es/invitaciones/<AÑO DEL EVENTO>/. Si el año no existe, se crea la carpeta.plantilla-invitacion/ a esa ruta:
cp -r plantilla-invitacion invitaciondigital.es/invitaciones/2027/lauraypablo-15062027
NOMBRE1, AAAA, slug-DDMMAAAA, fecha del contador…).img/ de la propia invitación y se enlazan con rutas relativas (img/foto.jpg).
Solo og:image y og:url llevan URL absoluta (las necesitan WhatsApp y redes sociales).scripts/AAAA/<slug>-DDMMAAAA.gs.La URL final será https://www.invitaciondigital.es/invitaciones/AAAA/<slug>-DDMMAAAA/.
index.html, style.css, main.js e img/.
Cambiar una nunca afecta a otra.shared/ y se carga con ruta absoluta (/shared/js/...).shared/ de forma incompatible: las invitaciones antiguas lo siguen usando.invitacion/lauraypablo-15062027) y fusionar a main al publicar..htaccess mantiene vivos los enlaces que ya se enviaron a invitados:
/invitaciones/<slug>-DDMMAAAA/ → /invitaciones/AAAA/<slug>-DDMMAAAA/ (regla genérica, válida para cualquier invitación)./anasergi12092026/ y /elenaxavi23052026/ (estructura original) → nueva ruta./home/home/logo.*, /css/style.css, /js/main.js → assets/.