# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/fvn/launcher.f17city.net/translations"
PassengerBaseURI "/translations"
PassengerNodejs "/home/fvn/nodevenv/launcher.f17city.net/translations/22/bin/node"
PassengerAppType node
PassengerStartupFile server.js
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END
# ========================================
# Complete Translations API Configuration
# ========================================
# Enable rewrite engine
RewriteEngine On

# Route ALL requests to Node.js app (running on port 3009)
# Ensure full path including /translations is preserved
RewriteRule ^(.*)$ http://localhost:3009%{REQUEST_URI} [P,L]

# ========================================
# CORS Headers for API
# ========================================
<IfModule mod_headers.c>
    # Allow all origins
    Header always set Access-Control-Allow-Origin "*"
    
    # Allow all methods
    Header always set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS, HEAD"
    
    # Allow all headers
    Header always set Access-Control-Allow-Headers "Content-Type, Authorization, User-Agent, Accept, Accept-Ranges, Range, X-Requested-With"
    
    # Expose headers
    Header always set Access-Control-Expose-Headers "Content-Length, Content-Range"
    
    # Preflight cache
    Header always set Access-Control-Max-Age "86400"
    
    # Handle OPTIONS preflight
    RewriteCond %{REQUEST_METHOD} OPTIONS
    RewriteRule ^(.*)$ $1 [R=200,L]
</IfModule>

# ========================================
# Security Headers
# ========================================
<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-XSS-Protection "1; mode=block"
    Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

# ========================================
# Cache Control
# ========================================
<IfModule mod_expires.c>
    ExpiresActive On
    
    # Cache API responses
    ExpiresByType application/json "access plus 1 hour"
    ExpiresByType application/xml "access plus 1 hour"
    ExpiresByType text/plain "access plus 1 hour"
</IfModule>

# ========================================
# Compression
# ========================================
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE text/plain
</IfModule>

# ========================================
# Performance
# ========================================
<IfModule mod_headers.c>
    Header always set Connection "keep-alive"
    Header always set X-Accel-Buffering "no"
</IfModule>
