# SIGA - .htaccess de la RAIZ del proyecto  ·  SOLO PROTECCION
#
# ESTE ARCHIVO ES OPCIONAL Y SE AÑADE AL FINAL, cuando SIGA ya funcione.
# Subelo como "htaccess-RAIZ-solo-proteccion.txt" y renombralo a ".htaccess"
# desde cPanel > Administrador de archivos, dentro de la carpeta siga/.
#
# Que hace: impedir que se pueda descargar el archivo .env (que contiene la
# contraseña de la base de datos) y otros archivos internos.
#
# Que NO hace, deliberadamente:
#   - NO reescribe URLs      -> esa era la causa del error 500. SIGA ya no
#                               necesita reescritura: funciona con
#                               index.php/ruta.
#   - NO usa "Options"       -> en hosting compartido esa directiva suele
#                               estar prohibida por AllowOverride, y cuando
#                               lo esta Apache NO la ignora: devuelve un 500
#                               en TODA la carpeta y las de debajo.
#   - NO usa "Header"        -> las cabeceras de seguridad las envia PHP
#                               desde app/Core/Response.php.
#
# Solo se usan FilesMatch y Require, que son los mismos que ya funcionan en
# los .htaccess de app/, config/, database/ y storage/ (comprobado: dan 403).
#
# SI AL PONERLO APARECE UN ERROR 500: renombralo de nuevo a .txt. En ese caso
# este hosting no admite ni siquiera esto, y hay que proteger las credenciales
# por otra via (avisame y lo resolvemos moviendo la configuracion a
# config/, que ya esta protegida).

<FilesMatch "^\.env|^\.env\..*|^\.gitignore$|composer\.(json|lock)|\.(sql|log|ini|sh|bak|dist|md|lock)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        <IfModule mod_authz_host.c>
            Order allow,deny
            Deny from all
        </IfModule>
    </IfModule>
</FilesMatch>
