Je pense que la première réponse redirige avec succès les non-www vers les www (ex : mysite.com -> www.mysite.com ), mais ne prend pas en compte les sous-domaines joker, ce qui donne lieu à :
random.mysite.com -> www.random.mysite.com
Voici une solution avec/sans HTTPS
HTTP
RewriteEngine On
RewriteCond %{HTTP_HOST} !www.mysite.com$ [NC]
RewriteRule ^(.*)$ http%{ENV:protossl}://www.mysite.com/$1 [L,R=301]
HTTP/HTTPS
RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ - [env=protocol:https]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ - [env=protocol:http]
RewriteCond %{HTTP_HOST} !www.mysite.com$ [NC]
RewriteRule ^(.*)$ %{ENV:protocol}://www.mysite.com/$1 [L,R=301]
*Note : Je n'ai pas testé https parce que je n'ai pas actuellement de certificat à tester, mais si quelqu'un peut vérifier ou optimiser ce que j'ai, ce serait génial.