Вам нужно исключить пункт назначения, на который вы перенаправляете:
RewriteEngine on
RewriteRule !^index\.php$ /index.php [L,R=301]
Если вы просто хотите перенаправить запросы, которые не могут быть сопоставлены с существующими файлами в файловой системе, добавьте это условие:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php$ /index.php [L,R=301]
Но вам лучше ответить 404 в этом случае.