Options -Indexes
DirectoryIndex index.php

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^cache/ - [F,L]
    RewriteRule ^lib/ - [F,L]
    RewriteRule ^tools/ - [F,L]
    RewriteRule \.(sqlite|py|md)$ - [F,L]
    RewriteRule ^(.+)\.txt$ $1.json [R=301,L]
    RewriteRule \.json$ index.php [QSA,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]

    RewriteRule ^ index.php [QSA,L]
</IfModule>

<FilesMatch "\.json$">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Deny from all
    </IfModule>
</FilesMatch>

<Files "config.php">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Deny from all
    </IfModule>
</Files>

<Files "build-index.php">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Deny from all
    </IfModule>
</Files>
