Я вважаю, що головна відповідь успішно переспрямовує не-www до www (наприклад: mysite.com -> www.mysite.com ), але не враховує піддомен підстановки, що призводить до:
random.mysite.com -> www.random.mysite.com
Ось рішення з / без 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]
* Примітка: я не тестував https, тому що зараз не маю сертифіката для тестування, але якщо хтось може перевірити або оптимізувати те, що у мене є, це було б дивним.