Well, after trying out all 3 of the options i posted, none worked and one threw a server error.
BUT, alas... I found the correct way to do it:
<code class="htaccess" title="in your .htaccess file">RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]</code>
This is the correct way to forward all non www requests to www.yoursite.com
No need to put your domain name, simply add the code above to a .htaccess file on your server and viola!
If someone wants to redirect all www to non www then the code would be:
```
> ```
> ```
> <code class="htaccess" title="in your .htaccess file">RewriteEngine On
> RewriteCond %{HTTP_HOST} !^my-domain\.com$ [NC]
> RewriteRule ^(.*)$ http://my-domain.com/$1 [R=301,L]</code>
> ```
> ```
```
```
<code class="htaccess" title="in your .htaccess file">and of course replace the my-domain with your domain ;)</code>
```
```