Tach!
Offenbar ist .* in dem Fall nicht der richtige Ausdruck um "alles" zu beschreiben. Hab jetzt stattdessen mal [0-9a-z-]+ genommen.
Doch, .* steht für alles und das schließt die index.php mit ein, was die Problemursache ist. Nach solch einem Umschreiben schickt mod_rewrite die neu gebildete URL intern erneut in die Request-URL-Auflösungsmaschine. Diese kommt wieder an deiner Regel vorbei, diesmal mit index.php (der Rest ist Querystring und wird von den Umschreib-Regeln ignoriert). Das passt ebenfalls und wird erneut umgeschrieben. Dein Ausdruck [0-9a-z-]+ jedoch enthält keinen Punkt, weswegen die Regel nicht mehr auf index.php passt.
Man kann das Problem auch ohne Einschränkung auf bestimmte Zeichen lösen, indem man der RewriteRule Bedingungen voranstellt:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Diese schließen real existierende Dateien und Verzeichnisse von der Regel aus.
dedlfix.