# ================== /uploads — LOCKED STATIC (seguro para assets) ==================
Options -Indexes -MultiViews
AddDefaultCharset UTF-8
FileETag None

# 1) Métodos permitidos (solo lectura de assets)
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|OPTIONS)$ [NC]
  RewriteRule ^ - [F,L]
</IfModule>

# 2) Nunca ejecutar código aquí (desactiva PHP/mod_php si existiera)
<IfModule mod_php*.c>
  php_flag engine Off
</IfModule>

# 3) Denegar ejecución de scripts/formatos peligrosos por si suben algo indebido
<FilesMatch "\.(php[0-9]?|phtml|phar|phps|cgi|pl|py|rb|asp|aspx|jsp|sh|bash|zsh|lua|go)$">
  Require all denied
</FilesMatch>

# 4) Bloquear archivos de configuración/backups/dumps
<FilesMatch "\.(env|ya?ml|ini|log|sql(\.gz)?|bak|old|orig|save|swp|swo)$">
  Require all denied
</FilesMatch>

# 5) (Opcional fuerte) Servir SVG como descarga (evita ejecución/inlines con JS)
#    Si usas SVGs limpios de tu marca y los necesitas inline, comenta este bloque.
<FilesMatch "\.svg$">
  <IfModule mod_headers.c>
    Header set Content-Disposition "attachment"
    Header set X-Content-Type-Options "nosniff"
  </IfModule>
</FilesMatch>

# 6) Cabeceras de seguridad de solo-lectura
<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set Cross-Origin-Resource-Policy "same-origin"
  Header always unset X-Powered-By
</IfModule>

# 7) Tipos permitidos más comunes (imágenes, video liviano, fuentes)
<IfModule mod_mime.c>
  AddType image/avif  .avif
  AddType image/webp  .webp
  AddType image/png   .png
  AddType image/jpeg  .jpg .jpeg
  AddType image/gif   .gif
  AddType image/svg+xml .svg
  AddType video/mp4   .mp4
  AddType video/webm  .webm
  AddType font/woff2  .woff2
</IfModule>

# 8) Cache de assets (larga para imágenes/fuentes; no HTML aquí)
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/avif        "access plus 30 days"
  ExpiresByType image/webp        "access plus 30 days"
  ExpiresByType image/png         "access plus 30 days"
  ExpiresByType image/jpeg        "access plus 30 days"
  ExpiresByType image/gif         "access plus 30 days"
  ExpiresByType image/svg+xml     "access plus 7 days"
  ExpiresByType video/mp4         "access plus 7 days"
  ExpiresByType video/webm        "access plus 7 days"
  ExpiresByType font/woff2        "access plus 30 days"
  ExpiresDefault "access plus 7 days"
</IfModule>

# 9) Compresión de respuestas textuales (no comprime binarios ya optimizados)
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

# 10) (Opcional) Límite de tamaño por archivo — ajusta según tu flujo
#LimitRequestBody 8388608   # 8 MB
# Si subes videos más pesados a /uploads, comenta esto o súbelo.

# 11) (Opcional) Anti-hotlink básico — descomenta si te roban ancho de banda
#<IfModule mod_rewrite.c>
#  RewriteEngine On
#  RewriteCond %{HTTP_REFERER} !^https?://(www\.)?tanbellamipea\.com/ [NC]
#  RewriteRule \.(jpe?g|png|gif|webp|avif|svg|mp4|webm)$ - [F,NC]
#</IfModule>

# 12) Evitar listados bonitos aunque activen Indexes por error
<IfModule mod_autoindex.c>
  IndexOptions -FancyIndexing
</IfModule>
