Options -Indexes

# Faster loading on phones: compress text assets and let browsers cache them.
# Asset URLs carry ?v=<filemtime>, so updates still load immediately.
<IfModule mod_deflate.c>
    <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json image/svg+xml
    </IfModule>
</IfModule>
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css "access plus 30 days"
    ExpiresByType application/javascript "access plus 30 days"
    ExpiresByType text/javascript "access plus 30 days"
    ExpiresByType image/svg+xml "access plus 30 days"
    ExpiresByType font/woff2 "access plus 30 days"
</IfModule>

RewriteEngine On

# If file exists, serve it directly
RewriteCond %{REQUEST_FILENAME} !-f

# If directory exists, serve it directly
RewriteCond %{REQUEST_FILENAME} !-d

# Route all requests to index.php
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

# Default route
RewriteRule ^$ index.php [L]