Configuring "@" CNAME record in GoDaddy control panel

I have mydomain.com that is hosted on an Azure VM instance called mymachine.cloudapp.net

I need to configure DNS so that both www.mydomain.com and mydomain.com get mapped to the same host. I'm using GoDaddy as registrar.

Currently GoDaddy offers me to create an empty (@) A record, so that if I ping mymachine.cloudapp.net and resolve its VIP address I can store it in the A record.

Unfortunately, if the VIP changes and I forget to re-ping I get mydomain.com unreachable, and that's normal.

When I try to move that @ record to the CNAME section so it best points to the VM hostname, I get the following error:

A record of a different type exists for the hostname @, could not create CNAME

This occurs both if I delete the A record and write CNAME, and if there is no @ record in the A section.

How can one set a @ CNAME record in a GoDaddy managed domain?


Solution 1:

In short, you can't make the @ record a CNAME without deleting all other resource records for @, and you can't do that since some (like the NS records) are required for proper DNS functionality. This is one reason why providers such as Heroku tell you not to use naked domain names.

You will need a host to perform the HTTP redirection from example.com to www.example.com for you, to which you will point A (and AAAA) record for @.

If your DNS is hosted with GoDaddy, then they have a free service that will do this for you. In your GoDaddy domain manager, look on the left hand side for "Forwarding" and click "Manage". Then set it to forward example.com to www.example.com and update your DNS to support the change. You should leave the Advanced Options at their defaults.

GoDaddy Domain Forwarding Control