...credo di aver trovato, ho combinato e mischiato qualcosa che ho trovato con il codice che mi hai consigliato tu, l'ho provato e sembra funzionare, eccolo:
codice:
RewriteEngine On
#escludi le rule seguenti per i file e cartelle che esistono sul filesystem e non sono file.php: css, immagini, js etc
RewriteBase /
RewriteRule ^(.*)\.html$ $1.php [L,QSA]
#fine esclusione
#"nascondi" l'estensione .php
RewriteCond %{REQUEST_URI} !\.php
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]
#per tutti gli url che contengono .php richiesti direttamente, risponde il file 404.php (o quello che preferisci, cambia il nome del file)
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_URI} \.php
RewriteCond %{REQUEST_FILENAME} !404.php$
RewriteRule ([a-zA-Z0-9\-_]*) 404.php [L]
...è un codice esatto?