Ich würde das so ung. machen:
RewriteEngine On
# HTML-Dateien
RewriteCond %REQUEST_URI% (.*)\.htm[l]?$ [NC]
RewriteRule (.*)\.htm[l]?$ $1.php [QSA,L]
# PHP-Dateien
RewriteCond %REQUEST_URI% (.*)\.php$ [NC]
RewriteRule (.*) - [F,L]
Eine Anfrage auf index.html wird auf index.php umgeleitet
Eine Anfrage auf index.htm wird auf index.php umgeleitet
Eine Anfrage auf index.php bekommt eine Forbidden-Meldung
Dabei musst du aber sehen, dass du in deinen Skripten alle Links dann als html ausgibst und musst evtl. auch Dateinamen bzw. Endungen ersetzen etc.. Je nachdem wie die Skripte halt aufgebaut sind.
Ansonsten: Das ist Blödsinn.
1. Ist es keine Sicherheitslücke, wenn der draußen weiß, dass da PHP läuft.
2. Muss dann auch die Meldung vom Web-Server angepasst werden, dass der nicht mitteilt, dass er PHP laufen lassen kann.
3. Wenn z.B. Session Cookies gesetzt werden, weiß der geneigte Angreifer, dass ihr PHP verwendet.
4. Wenn generell Cookies gesetzt werden, weiß der geneigte Angreifer, dass wohl kaum statische HTML-Seiten verwendet werden.
5. Wenn der Angreifer merkt, wie "toll" ihr eure Seite schützt, ist er vielleicht eher der Meinung, er könnte es da mal probieren. Denn:
6. Wenn ihr hier so "professionell" vorgeht, findet er bestimmt woanders ne Lücke die offen ist.
7. Sicher ist es, wenn es keiner kann, nicht wenn es keiner weiß!