# PREVENCIÓN DE LISTADO DE DIRECTORIOS
Options -Indexes

# DESACTIVAR LA FIRMA DEL SERVIDOR
ServerSignature Off

# BLOQUEAR EL ACCESO A ARCHIVOS .htaccess
<Files ".htaccess">
  Order Allow,Deny
  Deny from all
</Files>

# BLOQUEAR EL ACCESO A ARCHIVOS DE CONFIGURACIÓN (ej: .env)
<FilesMatch "\.(env|ini|config|json|log|bak|sql)$">
  Order Allow,Deny
  Deny from all
</FilesMatch>

# BLOQUEAR EL ACCESO A DIRECTORIOS COMUNES QUE NO DEBERÍAN SER ACCESIBLES
<DirectoryMatch "^(/includes|/tmp|/cache|/logs|/config|/vendor)/">
  Order Allow,Deny
  Deny from all
</DirectoryMatch>

# PROTECCIÓN CONTRA HOTLINKING (OPCIONAL - ajusta el dominio)
# Evita que otros sitios usen tus imágenes directamente
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
# RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?cervante.sarep.gob.ve [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?sarep.test [NC]
RewriteRule \.(jpg|jpeg|png|gif|svg)$ - [F,L]

#  BLOQUEAR EL ACCESO A ARCHIVOS PHP EN DIRECTORIOS DE CARGA (si los tienes)
#  Evita la ejecución de scripts maliciosos subidos
<Directory "/ruta/a/tu/directorio/de/uploads">  # Ajusta la ruta
  <FilesMatch "\.php$">
    Order Allow,Deny
    Deny from all
  </FilesMatch>
  Options -ExecCGI  # Desactiva la ejecución de CGI en este directorio
  Options -FollowSymLinks  # Evita que se sigan enlaces simbólicos
</Directory>

# REESCRITURA PARA FRONT CONTROLLER (si usas uno)
# Redirige todas las solicitudes que no sean archivos o directorios existentes a index.php
RewriteEngine On
RewriteBase /sarep/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

# CABECERAS DE SEGURIDAD (Mejora la seguridad del navegador)
<IfModule mod_headers.c>
  Header set X-Frame-Options "SAMEORIGIN"
  Header set X-XSS-Protection "1; mode=block"
  Header set X-Content-Type-Options "nosniff"
  Header set Referrer-Policy "strict-origin-when-cross-origin"  # o "no-referrer"
  Header set Permissions-Policy "geolocation=(), microphone=(), camera=()"  # Ajusta según necesites
</IfModule>

# CACHÉ DEL NAVEGADOR (Optimización)
<FilesMatch "\.(ico|jpg|jpeg|png|gif|svg|js|css)$">
  Header set Cache-Control "max-age=31536000, public"  # 1 año
</FilesMatch>

# COMPRESIÓN GZIP (Optimización)
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>