Options -Indexes
DirectoryIndex index.php index.html

RewriteEngine On

# Redireciona todas as requisições para index.php (exceto arquivos e pastas reais)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

# ── Compressão Gzip (reduz echarts.min.js de 1MB para ~300KB) ───────────────
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css
    AddOutputFilterByType DEFLATE application/javascript application/json
    AddOutputFilterByType DEFLATE application/x-javascript text/javascript
    # Não comprimir arquivos já comprimidos
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|webp|gz|zip)$ no-gzip
</IfModule>

# ── Cache do navegador (evita re-download a cada clique) ────────────────────
<IfModule mod_expires.c>
    ExpiresActive On
    # JS e CSS: 30 dias (inclui echarts.min.js)
    ExpiresByType application/javascript  "access plus 30 days"
    ExpiresByType text/javascript         "access plus 30 days"
    ExpiresByType text/css                "access plus 30 days"
    # Imagens: 7 dias
    ExpiresByType image/png               "access plus 7 days"
    ExpiresByType image/jpeg              "access plus 7 days"
    ExpiresByType image/gif               "access plus 7 days"
    ExpiresByType image/svg+xml          "access plus 7 days"
    ExpiresByType image/x-icon           "access plus 30 days"
    # Fontes
    ExpiresByType font/woff2              "access plus 30 days"
    ExpiresByType font/woff               "access plus 30 days"
</IfModule>

# ── Cache-Control via mod_headers (complementa mod_expires) ─────────────────
<IfModule mod_headers.c>
    # JS/CSS com versionamento (?v=xxx): cache agressivo
    <FilesMatch "\.(js|css)$">
        Header set Cache-Control "public, max-age=2592000, immutable"
    </FilesMatch>
    # Imagens
    <FilesMatch "\.(png|jpg|jpeg|gif|ico|svg|woff|woff2)$">
        Header set Cache-Control "public, max-age=604800"
    </FilesMatch>
</IfModule>
