# ===================================================================
# .htaccess — CBP Nexus / Levantamiento de Requerimientos
# Coloca este archivo en la misma carpeta que index.php
# (ej. /requerimientos/.htaccess)
# ===================================================================

# --- Codificación por defecto ---
AddDefaultCharset UTF-8

# --- Evitar que se liste el contenido de las carpetas ---
# (por ejemplo, que alguien navegue a /assets/ y vea todos los archivos)
Options -Indexes

# --- Bloquear el acceso directo a archivos sensibles ---
# Nadie debe poder abrir schema.sql, config.php mostrado como texto plano,
# ni archivos de log/base de datos si algún día quedan sueltos en el servidor.
<FilesMatch "\.(sql|log|db|sqlite|env|ini|bak|zip|gitignore)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</FilesMatch>

# --- Bloquear el propio .htaccess y archivos ocultos tipo .git ---
<FilesMatch "^\.">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</FilesMatch>

# --- Forzar HTTPS ---
# IMPORTANTE: deja esto comentado hasta confirmar que el candado SSL
# funciona en https://nexus.bomberospuchuncavi.cl (revisa en cPanel >
# SSL/TLS Status, o activa AutoSSL si no está emitido). Una vez confirmado,
# quita el "#" de las dos líneas de abajo.
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

# --- Cabeceras de seguridad básicas ---
<IfModule mod_headers.c>
    Header set X-Content-Type-Options "nosniff"
    Header set X-Frame-Options "SAMEORIGIN"
    Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

# --- Página de error 403/404 (opcional, PHP ya maneja la mayoría de rutas) ---
ErrorDocument 403 "Acceso restringido."
ErrorDocument 404 "Página no encontrada — CBP Nexus."
