Simplifique isso:
RewriteRule ^(.*)\.html?\??(.*)$ $1.php?$2 [nc]
Para isso:
RewriteRule (.*)\.html?$ $1.php [NC,QSA]
O ^
inicial é desnecessário, pois .*
corresponde a qualquer coisa já. E preservar a string de consulta manualmente é (a) problemático e (b) completamente desnecessário, uma vez que o sinalizador QSA (acréscimo de string de consulta) lidará com tudo isso internamente.