<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/public

    # Set environment variables
    SetEnv CHROME_PATH /usr/bin/google-chrome-stable
    SetEnv NODE_PATH /usr/bin/node
    SetEnv PUPPETEER_EXECUTABLE_PATH /usr/bin/google-chrome-stable

    <Directory /var/www/html/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
        
        # Enable .htaccess
        <IfModule mod_rewrite.c>
            RewriteEngine On
            
            # Handle Authorization Header
            RewriteCond %{HTTP:Authorization} ^(.*)
            RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
            
            # Redirect Trailing Slashes
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_URI} (.+)/$
            RewriteRule ^ %1 [L,R=301]
            
            # Send Requests To Front Controller
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^ index.php [L]
        </IfModule>
    </Directory>

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

    # Logging
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # Timeout settings for PDF generation
    Timeout 300
    ProxyTimeout 300

    # Keep alive settings
    KeepAlive On
    MaxKeepAliveRequests 100
    KeepAliveTimeout 5
</VirtualHost>