<IfModule mod_dir.c>
    DirectoryIndex index.php index.html
</IfModule>

Options -Indexes

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Prevent direct access to sensitive files and directories
    RewriteRule ^(\.env|\.git|config|app|database|storage|cron|tests|docs|mobile) - [F,L]
    RewriteRule (^|/)\.(?!well-known) - [F,L]

    # If the requested file or directory exists directly at root (e.g. assets, favicon), serve it
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # Rewrite /assets requests to public/assets if not matched at root
    RewriteCond %{DOCUMENT_ROOT}/public/assets/$1 -f
    RewriteRule ^assets/(.*)$ public/assets/$1 [L]

    # Send all other requests to root index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>
