通常,phpファイルへのアクセスは「https://xxxx/xxx/hoge.php」,htmlファイルへのアクセスは「https://xxxx/xxx/fuga.html」のようなURLです.
それらの拡張子がなくてもアクセスできるようにして,さらに301転送設定をするのを同時にやる方法を試行錯誤して,一応できたと思います.
ということでメモ..htaccess を以下のように設定します.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} \s([^.]+)\.html [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{THE_REQUEST} \s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>
前半のルールで拡張子ありから拡張子なしへの301転送を実施し,さらに後半のルールで拡張子のないURLを扱えるように拡張子ありのファイルを呼び出しています.