<IfModule mod_rewrite.c>
    RewriteEngine On
    
    # Set the base path for the application
    RewriteBase /
    
    # Remove .php extension from URLs (optional, but useful for clean URLs)
    # RewriteCond %{REQUEST_FILENAME} !-f
    # RewriteCond %{REQUEST_FILENAME} !-d
    # RewriteRule ^([^\.]+)$ $1.php [NC, L]
    
    # Prevent direct access to certain files
    RewriteRule ^(config|classes|helpers|migrations|admin)/ - [F,L]
    
    # Allow access to actual files and directories
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    
    # Ensure images load properly
    RewriteCond %{REQUEST_URI} \.(jpg|jpeg|png|gif|css|js|ico|svg|webp|bmp)$ [NC]
    RewriteRule ^ - [L]
    
    # Route image requests to image handler if file not found
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} \.(jpg|jpeg|png|gif|webp|bmp)$ [NC]
    RewriteRule ^(.+)\.(jpg|jpeg|png|gif|webp|bmp)$ /emporio/image_handler_v3.php?img=$1.$2 [QSA,L]
</IfModule>

<IfModule mod_deflate.c>
    # Enable gzip compression for text-based content
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/json
</IfModule>

<IfModule mod_expires.c>
    # Enable browser caching for static assets
    ExpiresActive On
    
    # Images
    ExpiresByType image/jpeg "access plus 30 days"
    ExpiresByType image/gif "access plus 30 days"
    ExpiresByType image/png "access plus 30 days"
    ExpiresByType image/webp "access plus 30 days"
    
    # CSS and JavaScript
    ExpiresByType text/css "access plus 30 days"
    ExpiresByType application/javascript "access plus 30 days"
    ExpiresByType text/javascript "access plus 30 days"
    
    # Fonts
    ExpiresByType application/font-woff "access plus 1 year"
    ExpiresByType application/font-woff2 "access plus 1 year"
    ExpiresByType font/ttf "access plus 1 year"
    
    # Default
    ExpiresDefault "access plus 2 days"
</IfModule>

# Prevent access to .htaccess file
<Files .htaccess>
    Deny from all
</Files>

# Prevent directory listing
Options -Indexes

# Enable UTF-8 encoding
AddDefaultCharset UTF-8
