Перезапись htaccess вызывает ошибку 500 вместо 404

Я недавно добавил этот маленький кусочек кода в мой.htaccess файл:

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

Хорошо, я понимаю, что здесь происходит, я думаю. Этот небольшой кусочек кода для удаления расширений файлов PHP вызывает цикл, если документ не найден. Этот цикл вызывает ошибку сервера 500 вместо (правильного) 404. К сожалению, я очень мало понимаю, что на самом деле делают эти перезаписи, поэтому я не знаю, как переписать его, чтобы вызвать это перенаправление, только если документ существует.

Я немного читал, и я не уверен, что Apache считает «обычным» файлом. Я имею в виду, что это работает, но почему бы не первая строка-f вместо!-f? Является-u единственный способ сделать это?

Ответы на вопрос(3)

Ваш ответ на вопрос