# ==============================================================================
# Apache & LiteSpeed Configuration for cPanel Hosting (TvCon Web App)
# ==============================================================================

DirectoryIndex index.html index.php

# Ensure correct MIME types so browsers never reject CSS or JavaScript
<IfModule mod_mime.c>
  AddType text/css .css
  AddType application/javascript .js .mjs
  AddType image/svg+xml .svg .svgz
  AddType image/webp .webp
  AddType image/png .png
  AddType image/jpeg .jpg .jpeg
  AddType application/json .json
  AddType application/vnd.apple.mpegurl .m3u8
  AddType video/mp2t .ts
  AddType font/woff2 .woff2
  AddType font/woff .woff
  AddType font/ttf .ttf
</IfModule>

# Handle CORS globally
<IfModule mod_headers.c>
  Header always set Access-Control-Allow-Origin "*"
  Header always set Access-Control-Allow-Methods "GET, POST, OPTIONS, HEAD"
  Header always set Access-Control-Allow-Headers "*"
</IfModule>

# URL Rewriting for React SPA and PHP API Proxies
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

  # 1. API Endpoints routing to PHP proxy scripts
  RewriteRule ^api/proxy-stream(.*)$ api/proxy.php [QSA,L]
  RewriteRule ^api/proxy-m3u8(.*)$ api/proxy.php [QSA,L]
  RewriteRule ^api/gdrive-video/?$ api/gdrive.php [QSA,L]
  RewriteRule ^api/la18hd/(.*)$ api/la18hd.php?path=/$1 [QSA,L]
  RewriteRule ^api/la18hd/?$ api/la18hd.php [QSA,L]

  # 2. Never rewrite direct requests for static assets or api scripts
  RewriteRule ^assets/ - [L]
  RewriteRule ^api/ - [L]
  RewriteRule ^images/ - [L]
  RewriteRule ^videos/ - [L]
  RewriteRule ^peliculas/ - [L]

  # 3. If file or directory exists on disk, serve directly
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^ - [L]

  # 4. Fallback all remaining routes to index.html for React SPA
  RewriteRule ^.*$ index.html [L]
</IfModule>

# Enable GZIP / Deflate compression for ultra-fast loading
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript application/json image/svg+xml
</IfModule>

# Browser caching for static assets
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 month"
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType text/css "access plus 1 year"
  ExpiresByType application/javascript "access plus 1 year"
  ExpiresByType image/svg+xml "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
</IfModule>
