# ===============================================
# Seguridad de la carpeta /backend (fuera de /public)
# Solo permite: auth_login.php, logout.php y menu.php
# Bloquea todo lo demás.
# ===============================================

# No listar directorios, sin MultiViews (evita ambigüedades)
Options -Indexes -MultiViews

# Nunca servir archivos ocultos (.env, .git, .ht*)
<FilesMatch "^\.">
  Require all denied
</FilesMatch>

# Nunca servir backups o archivos temporales
<FilesMatch "\.(bak|old|orig|save|swp|swx|tmp)$">
  Require all denied
</FilesMatch>

# Reescrituras
RewriteEngine On

# 1) Si el recurso físico existe (archivo/carpeta), sigue evaluando reglas
#    (NOTA: no hacemos [L] aquí porque queremos aplicar el filtro de whitelist)
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [S=0]

# 2) WHITELIST de scripts permitidos en /backend
#    (El patrón es relativo a esta carpeta)
RewriteRule ^(auth_login|logout|menu)\.php$ - [L]

# 3) Bloquea TODO lo demás en /backend
#    Incluye otros .php, .txt, subcarpetas, etc.
RewriteRule ^ - [F]

# 4) Defensa adicional: evita ejecutar PHP en subdirectorios no deseados
#    (si no hay subdirectorios necesarios, se puede mantener)
<FilesMatch "\.php$">
  Require all granted
</FilesMatch>
