# ============================================================================
# RepTrack — public/.htaccess — o2switch mutualisé
# Document root : public_html/reptrack/public
# ============================================================================

Options -Indexes
Options +FollowSymLinks

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # ── Redirige vers HTTPS ───────────────────────────────────────────────────
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # ── Fichiers et dossiers existants → servis directement ──────────────────
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # ── Tout le reste → index.php ─────────────────────────────────────────────
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

# ── PHP — version et paramètres ──────────────────────────────────────────────
<IfModule mod_php.c>
    php_value upload_max_filesize 20M
    php_value post_max_size       20M
    php_value memory_limit        256M
    php_value max_execution_time  60
</IfModule>

# ── Sécurité ──────────────────────────────────────────────────────────────────
<FilesMatch "\.(env|env\.local|yaml|yml|lock|md)$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
</FilesMatch>

# ── Compression gzip ──────────────────────────────────────────────────────────
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json
</IfModule>

# ── Cache navigateur ──────────────────────────────────────────────────────────
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css               "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType image/png              "access plus 1 year"
    ExpiresByType image/jpeg             "access plus 1 year"
    ExpiresByType image/svg+xml          "access plus 1 year"
    ExpiresByType application/manifest+json "access plus 1 week"
</IfModule>