Hola,
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Si el archivo no es un directorio
RewriteCond %{REQUEST_FILENAME} !-d
# "Redirigir" normal cualquier numero,letra y barra (-)
# y no hacer nada mas.
RewriteRule ^([A-Za-z0-9-]+)/?$ $1.php [L]
# Si la consulta tiene extension .php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.php\ HTTP
# Y no es un directorio
RewriteCond %{REQUEST_URI} !-d
# Rediregimos a la misma consulta sin el .php
RewriteRule ^(.+)\.php$ $1 [L,R=302]
</IfModule>
Ahora, si intentas acceder a
sitio.com/archivo.php te redirige a sitio.com/archivoY si no, lo muestra tan normal.
También, he solucionado el internal error que tiraba cuando intentabas acceder a un archivo que no existía.
Tambien te dejo el archivo, tal y como por si crees que son problemas con el x64.
http://www.drvy.net/wp-content/uploads/2012/02/hta.zip
Saludos