# BLXChat - Apache Configuration for SPA Routing

# Enable Rewrite Engine
RewriteEngine On
RewriteBase /

# Admin PHP files - direct access (exact match)
RewriteRule ^admin/ - [L]

# Service Worker files - direct access (root'ta veya public/ klasöründe)
RewriteCond %{REQUEST_URI} ^/(service-worker|firebase-messaging-sw)\.js$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /public/$1 [L]

# Static files that exist - direct access (images, CSS, JS, etc.)
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

# Public files (JSON, logos, etc.) - direct access
RewriteCond %{REQUEST_URI} ^/public/
RewriteRule ^ - [L]

# JSON files - redirect root JSON requests to public/ folder
# Örnek: /inbox-settings.json -> /public/inbox-settings.json
RewriteCond %{REQUEST_URI} ^/(inbox-settings|companies|users|admin-config)\.json$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /public/$1 [L]

# Other JSON files - direct access if they exist
RewriteCond %{REQUEST_URI} \.(json)$ [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

# dist/ klasöründeki static dosyalar - direct access
RewriteCond %{REQUEST_URI} ^/dist/
RewriteRule ^ - [L]

# assets/ klasörü için dist/assets/ yönlendirmesi (build edilmiş JS/CSS dosyaları)
# /assets/main-xxx.js -> /dist/assets/main-xxx.js
RewriteCond %{REQUEST_URI} ^/assets/
RewriteRule ^assets/(.*)$ /dist/assets/$1 [L]

# API endpoints - direct access (if any)
RewriteCond %{REQUEST_URI} ^/api/
RewriteRule ^ - [L]

# SPA routing - internal rewrite to dist/index.html for all other requests
# Bu, /test232 gibi path'leri yakalayacak ve index.html'e yönlendirecek
# Path bilgisi korunur (window.location.pathname hala /test232 olacak)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/dist/
RewriteCond %{REQUEST_URI} !^/admin/
RewriteCond %{REQUEST_URI} !^/public/
RewriteCond %{REQUEST_URI} !^/api/
RewriteCond %{REQUEST_URI} !^/assets/
RewriteCond %{REQUEST_URI} !\.(json|js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot)$ [NC]
RewriteRule ^(.*)$ /dist/index.html [L]

# Security headers
<IfModule mod_headers.c>
    Header set X-Content-Type-Options "nosniff"
    Header set X-Frame-Options "SAMEORIGIN"
    Header set X-XSS-Protection "1; mode=block"
</IfModule>

# CORS for API (if needed)
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
    Header set Access-Control-Allow-Headers "Content-Type, Authorization"
</IfModule>

