# LandingEvents - Proteccion de la raiz del proyecto
#
# La aplicacion publica vive en /public. El acceso a la raiz del proyecto
# solamente permite entrar por index.php, que redirige al login publico.
# app/, config/, database/, storage/, tools/, scripts/, .env y otros archivos
# internos permanecen bloqueados por HTTP.

Options -Indexes
DirectoryIndex index.php
ErrorDocument 403 /LandingEvents/public/403.html

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Permitir la entrada segura desde http://localhost/LandingEvents/
    RewriteRule ^$ index.php [L]
    RewriteRule ^index\.php$ - [L]

    # La unica zona publica permitida es /public y sus descendientes.
    RewriteRule ^public(?:/|$) - [L]

    # Todo lo demas de la raiz del proyecto es privado.
    RewriteRule ^ - [F,L]
</IfModule>

# Si mod_rewrite no estuviera disponible, fallar cerrado.
<IfModule !mod_rewrite.c>
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</IfModule>

# Defensa adicional para secretos y artefactos sensibles.
<FilesMatch "(^\.|\.env(?:\..*)?$|composer\.(json|lock)$|package(?:-lock)?\.json$|.*\.(?:sql|log|ini|conf|dist|md)(?:\..*)?$|.*\.bak(?:[._-].*)?$|.*(?:backup|respaldo).*\.(?:sql(?:\.gz)?|zip|gz|tgz|tar|7z|bak)$)">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</FilesMatch>
