Tiene sentido, pues la directiva
!-f solo funciona para las rutas que no son un archivo, pero obviamente como si existe el archivo por eso ignora la regla.
Te invito a investigar referencias acerca de mod_rewrite de Apache.
PDTA:
El tema en si no va en el foro de PHP, corresponde al foro de Apache.
He reportado ya tu mensaje para que lo muevan.