<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Handle X-XSRF-Token Header
    RewriteCond %{HTTP:x-xsrf-token} .
    RewriteRule .* - [E=HTTP_X_XSRF_TOKEN:%{HTTP:X-XSRF-Token}]

    # Prevent caching of index.html for SPA updates
    <Files "index.html">
        Header set Cache-Control "no-cache, no-store, must-revalidate"
        Header set Pragma "no-cache"
        Header set Expires "0"
    </Files>
    RewriteRule ^assets/ - [L]
    RewriteRule ^favicon\.png$ - [L]
    RewriteRule ^favicon\.ico$ - [L]
    RewriteRule ^manifest\.json$ - [L]
    RewriteRule ^robots\.txt$ - [L]
    RewriteRule ^sw\.js$ - [L]
    RewriteRule ^firebase-messaging-sw\.js$ - [L]
    RewriteRule ^placeholder\.svg$ - [L]
    RewriteRule ^icon-192\.png$ - [L]
    RewriteRule ^icon-512\.png$ - [L]
    RewriteRule ^khcww-stamp\.png$ - [L]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # API requests go to Laravel
    RewriteCond %{REQUEST_URI} ^/api/ [NC]
    RewriteRule ^ index.php [L]

    # Laravel REST API routes go to Laravel
    RewriteCond %{REQUEST_URI} ^/rest/ [NC]
    RewriteRule ^ index.php [L]

    RewriteCond %{REQUEST_URI} ^/functions/ [NC]
    RewriteRule ^ index.php [L]

    RewriteCond %{REQUEST_URI} ^/coop/ [NC]
    RewriteRule ^ index.php [L]

    RewriteCond %{REQUEST_URI} ^/banking/ [NC]
    RewriteRule ^ index.php [L]

    # SPA fallback: all other non-file requests serve React index.html
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.html [L]
</IfModule>
