Вы можете попробовать это, чтобы полностью удалить .php
расширения из вашего файла и избежать бесконечного цикла:
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]
Этот код будет работать в Root / .htaccess. Обязательно измените RewriteBase, если вы хотите поместить его в файл htaccess в подкаталоге.