A CNAME is NOT area redirect. A CNAME is a type of DNS entryrecord that tells the DNS resolver to do another DNS lookup under a different name.
A DNS record for a site often looks like:
example.com. IN A 69.9.64.11
www.example.com IN CNAME example.com.
That means that when a user types in example.com
, then:
- The DNS client queries
example.com
and gets69.9.64.11
- The web browser issues a request to
69.9.64.11
and sends the host namehostnameexample.com
- The web server returnreturns the index document
- The user sees the content and
example.com
in their URL bar
When the user tyestypes in www.example.com
then
- The DNS client queries
www.example.com
and is told to look atexample.com
- The DNS client queries
example.com
and gets69.9.64.11
- The web browser issues a request to
69.9.64.11
and sends the host namehostnamewww.example.com
- The web server returnreturns the index document
- The user sees the content and
www.example.com
in their URL bar
If you want to redirect one to the other, you don't need to change DNS at all. 301 redirects can be implemented regardless of DNS configuration. Both A
records and CNAME
records work fine. If you want to use 301 redirects from www.example.com
to example.com
then the steps that are taken when a user types in www.example.com
would be:
- The DNS client queries
www.example.com
and is told to look atexample.com
- The DNS client queries
example.com
and gets69.9.64.11
- The web browser issues a request to
69.9.64.11
and sends the host namehostnamewww.example.com
- The web server returns a 301 redirect to
http://example.com/
- The DNS client queries
example.com
and gets69.9.64.11
- The web browser issues a request to
69.9.64.11
and sends the host namehostnameexample.com
- The web server returnreturns the index document
- The user sees the content and
example.com
in their URL bar
To make this work, your webserver needweb server needs to be configured to issue the 301 redirect response unless the domain name is canonical.