This rewrites everything, but actual files:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteRule ^(.*)$ index.php/$1 [L]

How do you rewrite "everything" to index.php, including actual file demands?

Try changing the two RewriteCond lines with this particular:

RewriteCond %{REQUEST_URI} !^/index\.php/

This can prevent a rewrite loop, as well as your RewriteRule has already been setup to rewrite everything (the problem was stopping you against spinning existing files)