It seems that you already got this one working by using free simple redirection service from a 3rd party, since now we can get
GET / HTTP/1.1
Host: example.com
HTTP/1.1 301 Moved Permanently
Location: http://www.example.com/
However, creating this kind of simple redirect could easily be handled on any server running any httpd. Now you are relying on a 3rd party free service provider. How can you guarantee this service:
- Will stay alive?
- Won't, under any circumstances, forward your traffic to somewhere else?
- Doesn't use this trust for any other purposes? By having an A record of your domain the service prociver can do almost anything with it: the control is not limited in HTTP traffic.
I'd suggest using any server you can manage by yourself and adding a NameVirtualHost, e.g. in Apache:
<VirtualHost *:80>
ServerName example.com
Redirect / http://www.example.com/
</VirtualHost>
I'd also suggest using generalized domain instead of your actual domain name to prevent giving away information about your configuration.