7 languages, 3 pages (What/How/Start), 80-line router, 98KB total.
Features:
- No database, no Composer, no build step — just files on disk
- nginx PHP isolation: only index.php executes
- Bot detection with browser heuristic bypass
- Rate limiting, structured weekly logs, geo-location, Telegram alerts
- Multi-language: Accept-Language auto-detect, nav dropdown
- Article sub-page routing via /start/{slug}
- Apache + Caddy config alternatives documented in Start page
- Sample config — no real keys or secrets
1 line
903 B
PHTML
1 line
903 B
PHTML
<section class="content-section"><h2 class="section-title">Cómo funciona</h2><div class="section-content"><h3>Flujo de solicitudes</h3><p>Cada solicitud llega a <code>index.php</code>. Es el único archivo PHP que nginx permite ejecutar — todos los demás devuelven 404.</p><h3>Enrutamiento</h3><p>Las URLs se mapean a plantillas mediante constantes en <code>class/config.php</code>. Nueva página: define el slug, el texto del menú, crea la plantilla.</p><h3>Idiomas</h3><p>Cada idioma tiene su propio directorio bajo <code>lng/</code>. El encabezado <code>Accept-Language</code> del navegador detecta automáticamente el idioma.</p><h3>Seguridad</h3><ul><li>nginx bloquea todos los <code>.php</code> excepto <code>index.php</code></li><li>Cookies de sesión: httponly, SameSite=Lax</li><li>Detección de bots con más de 30 patrones</li><li>Limitación de tasa a 5 req/s</li></ul></div></section>
|