# ============================================
# .htaccess for cPanel Video Hosting
# Optimized for Safari and Chrome streaming
# Location: /public_html/media/videos/.htaccess
# ============================================

# Enable CORS for video streaming from any origin
<IfModule mod_headers.c>
    # Allow requests from any origin
    Header set Access-Control-Allow-Origin "*"
    
    # Allow GET, HEAD, and OPTIONS methods
    Header set Access-Control-Allow-Methods "GET, HEAD, OPTIONS"
    
    # Allow Range header for video seeking (CRITICAL for Safari)
    Header set Access-Control-Allow-Headers "Range, Content-Type, Accept, Accept-Encoding"
    
    # Expose headers needed for video playback
    Header set Access-Control-Expose-Headers "Content-Length, Content-Range, Accept-Ranges, Content-Type"
    
    # Enable range requests (REQUIRED for Safari video seeking)
    Header set Accept-Ranges "bytes"
    
    # Cache videos for 7 days (reduces load on server and speeds up playback)
    Header set Cache-Control "public, max-age=604800, immutable"
    
    # Enable keep-alive for better streaming performance
    Header set Connection "keep-alive"
</IfModule>

# Set proper MIME types for video files
<IfModule mod_mime.c>
    AddType video/mp4 .mp4
    AddType video/webm .webm
    AddType video/ogg .ogv .ogg
    AddType video/quicktime .mov
    AddType video/x-msvideo .avi
    AddType video/x-matroska .mkv
</IfModule>

# Cache control for videos (7 days)
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType video/mp4 "access plus 7 days"
    ExpiresByType video/webm "access plus 7 days"
    ExpiresByType video/ogg "access plus 7 days"
    ExpiresByType video/quicktime "access plus 7 days"
</IfModule>

# Security: Prevent directory listing
Options -Indexes

# Security: Prevent access to .htaccess itself
<Files .htaccess>
    Order allow,deny
    Deny from all
</Files>

# Allow direct file access for video files
<FilesMatch "\.(mp4|webm|ogv|ogg|mov|avi|mkv)$">
    Order Allow,Deny
    Allow from all
</FilesMatch>

# Performance optimization
<IfModule mod_headers.c>
    Header set X-Content-Type-Options "nosniff"
    Header set X-Frame-Options "SAMEORIGIN"
</IfModule>