<IfModule mod_rewrite.c>
    RewriteEngine On

    # Route /assets/ requests to public/assets/
    RewriteRule ^assets/(.*)$ public/assets/$1 [L,QSA]

    # Module API routing
    RewriteRule ^api/license/v1(?:/(.*))?$ public/api/license/v1/index.php [L,QSA]
    RewriteRule ^api/watchdog/v1(?:/(.*))?$ public/api/watchdog/v1/index.php [L,QSA]
    RewriteRule ^api/updateservice/v1(?:/(.*))?$ public/api/updateservice/v1/index.php [L,QSA]
    RewriteRule ^api/tokens/v1/provision public/api/tokens/v1/provision.php [L,QSA]
    RewriteRule ^api/bugtracker/v1/report public/api/bugtracker/v1/report.php [L,QSA]
    RewriteRule ^api/bugtracker/v1/manage(?:/(.*))?$ public/api/bugtracker/v1/manage/index.php [L,QSA]

    # Fallback for static assets in /api/
    RewriteRule ^api/(.*)$ public/api/$1 [L,QSA]

    # Route /install_db.php
    RewriteRule ^install_db\.php$ public/install_db.php [L,QSA]

    # Route /login.php & /logout.php
    RewriteRule ^login\.php$ public/login.php [L,QSA]
    RewriteRule ^logout\.php$ public/logout.php [L,QSA]

    # Route root requests to public/index.php
    RewriteRule ^$ public/index.php [L]
    RewriteRule ^index\.php$ public/index.php [L]

    # Block direct access to sensitive folders
    RewriteRule ^(config|src|sql|scripts)/ - [F,L]
</IfModule>
