La regla debería funcionar, de todas maneras varios detalles
1. supongo que los otros virtual hosts los definistes
2. En
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
El RewriteCond carece de sentido, se supone que eso esta en un htaccess en la raiz de seophp, asi que nunca el host requerido seria
www.example.com porque siempre sería seophp.example.com
Si yo pongo en la raiz de un dominio
RewriteRule ^(.*)$ http://localhost/$1 [R=301,L]
cualquiercosa que ponga siempre me va a redirigir a
http://localhost/cualquiercosa, incluso
?q=s, ira a
http://localhost?q=s
El tema pasa por saber si en html tenes algún otro htaccess (o una posible regla en httpd.conf) que pueda estar afectando a la carpeta seophp. Siempre es recomendable
NO usar subcarpetas de un dominio como Documentroot de otros dominios o subdominios, te evitas muchos dolores de cabeza y aseguras un funcionamiento independiente, es decir, en tu caso, poner todos los documentRoot en www y no en html.
Una última cosa, alguna vez, en alguno de mis servers si no anteponia el signo + a FollowSymLinks tenia problemas (aunque nadie me supo explicar por que)
Espero que estas indicaciones te den alguna pista
Saludos