It is important to note that a CNAME is not a redirect, but a DNS alias. To show the example:
An A record means:
name = IP
A CNAME means:
name = other name’s IP
other name = IP
So a CNAME is basically a short way to reference another A record, while not having to change that DNS record if the other A record changes later. However, the server at the IP behind the A record that is referenced must still be prepared to accept requests for the title of the CNAME, or return the same content to any request made to the IP regardless of the name.
For example, let’s say you have a virtual host for domain.com that displays your blog. You also have a default virtual host that displays a landing page if the web server receives a request that is not for domain.com. Now you add a CNAME for sub.domain.com to domain.com. When someone visits sub.domain.com, they will get the landing page because you have no virtual host for sub.domain.com.
I hope that makes sense. It’s rather generic as I do not know much about your specific application / configuration.