Вы можете добавить условие перезаписи в URI запроса, которое соответствует всему, что не заканчивается на. php
например: (не проверено)
RewriteEngine on
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^user/(.*)$ profile.php?name=$1 [NC,B,QSA]
проверка, действительно ли URI файл был очень популярен среди фреймворков, но он работает медленнее, чем соответствие строки, заканчивающейся на. php, потому что каждый запрос apache должен проверять, существует ли файл на диске.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^user/(.*)$ profile.php?name=$1 [NC,B,QSA]