# ==============================================================================
# KabadiMandu cPanel Apache / LiteSpeed Configuration
# Optimized for Node.js Application, HTTPS, and Static Asset Caching
# ==============================================================================

# 1. Protect Sensitive Files from Direct Public Web Access
<FilesMatch "^\.(env|git|json)|(database\.sql|tsconfig\.json|package\.json|package-lock\.json)$">
    Order allow,deny
    Deny from all
</FilesMatch>

# 2. Enable Rewrite Engine & Force HTTPS
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Redirect HTTP to HTTPS
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

# 3. Gzip / Brotli Compression for Fast Page Loads
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json application/xml image/svg+xml
</IfModule>

# 4. Browser Caching Policy
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/webp "access plus 1 month"
    ExpiresByType image/svg+xml "access plus 1 month"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
</IfModule>

# Disable Directory Browsing
Options -Indexes
