Regla genérica para remover espacios en blanco no encontré ninguna que sea efectiva, como en el espacio en blanco hacés una substitución, tendrías que saber cuantos son los componentes del nombre del archivo
por ejemplo, si tengo un archivo "archivo con espacios.html" 3 componentes en el nombre puedo usar esto
RewriteRule (.*)\-(.*)\-(.*)\.html "/$1 $2 $3.html" [L]
Demo
http://mr1.emprear.com/archivo-con-espacios.html
Suponé que tenes otro archivo con dos componentes
otro archivo.html, la regla anterior no serviría para
http://mr1.emprear.com/otro-archivo.html
pero si para uno de nombre
otro archivo .html -->notar que hay un espacio en blanco antes del punt
y deberias llamarlo
http://mr1.emprear.com/otro-archivo-.html --> debe incluir el guión
Usa los links para verificar
En definitiva, algo muy complicado
Recomendación : Jamás usar nombres de archivo con espacios en blanco !!! ni siquiera si estas trabajando en windows
Con las ñ í, etc es más complicado aun y requiere de como este compilado linux para dar soporte a esos caracteres
Ah y se me olvidaba, para siempre www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^dominio.com
RewriteRule (.*) http://www.dominio.com/$1 [R=301,L]
Saludos