Eu sempre uso um padrão negado, então qualquer coisa que corresponda ao host virtual, mas não corresponde ao endereço canônico, será redirecionado.
RewriteCond %{HTTP_HOST} !^www.example.com [nocase]
RewriteRule ^/(.*)$ http://www.example.com/$1 [redirect=permanent,nocase,last]
Isso tem o benefício de um número ilimitado e não especificado de ServerAlias
diretivas (por exemplo, * .exemplo.net, * .exemplo.org, * .exemplo.asia etc.) para todos redirecionar corretamente para www.example.com )