htaccess rewrite powoduje 500 błędów zamiast 404

Niedawno dodałem ten mały kod do mojego.htaccess plik:

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

Ok, rozumiem, co tu się dzieje. Ten mały fragment kodu do usuwania rozszerzeń plików PHP powoduje pętlę, jeśli dokument nie zostanie znaleziony. Ta pętla powoduje błąd serwera 500 zamiast (właściwego) 404. Niestety, bardzo mało rozumiem, co te poprawki faktycznie robią, więc nie wiem, jak go przepisać, aby wywołać to przekierowanie, jeśli dokument istnieje.

Zrobiłem trochę czytania i nie jestem pewien, co Apache uważa za „zwykły” plik. To znaczy, że działa, ale dlaczego nie miałaby być pierwsza linia-f zamiast!-f? Jest-u jedyny sposób, aby to osiągnąć?

questionAnswers(3)

yourAnswerToTheQuestion