apache\rewrite\cname的问题

apache\rewrite\cname的问题

apache里配置了两个虚拟主机
www.xxx.com
shop.xxx.com

打算用rewrite的方法,来实现对域名 100.shop.xxx.com的请求,重写为shop.xx.com/?q=100

DNS上做了如下设置:
www.xxx.com A记录 1.2.3.4
shop.xxx.com A记录 1.2.3.4
*.shop.xxx.com cname shop.xxx.com


现在的情况是:
当对100.shop.xxx.com 访问时,apache把请求让www.xxx.com虚拟主机来响应,不能应用到放在shop.xxx.com的站点目录下的rewrite规则文件

当把虚拟主机的顺序调整一下如下:
shop.xxx.com
www.xxx.com

就可以实现对域名 100.shop.xxx.com的请求,重写为shop.xx.com/?q=100

是不是因为虚拟主机站点上没有绑定*.shop.xxx.com 域名,所以默认就找第一个虚拟主机站点呢?
如果是这样的话,怎么解决呢?
看到有些朋友说 cname 不会传递100.shop.xxx.com给apache

而是传递shop.xxx.com给apache,那么对于访问请求100.shop.xxx.com就应该能够找到虚拟主机站点shop.xxx.com啊,不应该找不到而去找默认的第一个虚拟主机站点