Я полагаю, что ранее у вас было активным это правило mod_rewrite:
Пользователи переходят на http://site.com/product/12, и в браузере отображается этот URL-адрес, а внутренний и только внутренний сервер обслуживает http://www.site.com/product.php?id=12
Поместите первый RewriteCond и управляйте этим:
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(\w+)\.php\?id=(\d*)$ /$1/$2 [R=301]
И добавьте еще один, чтобы удалить .php, когда заканчивается .php
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(\w+)\.php$ /$1 [R=301]