Что вы хотите сделать - это сначала проверить, существует ли файл, это предотвратит бесконечный цикл, который вызывает ошибку 500.Это также заставит другие запросы файлов не php (например, изображения, CSS и т. Д.).
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]