3

Can I make a vhost on apache to respond to a cname request? For example:

A-record of example.com is 1.2.3.4
foo.example.com is a CNAME for example.com

in http.conf:

<VirtualHost *:80>
 ServerName example.com
 DocumentRoot /var/www
</VirtualHost>

<VirtualHost foo.example.com>
 ServerName foo.example.com
 DocumentRoot /foo/www
</VirtualHost>

apache starts fine and digests my conf, but when I visit foo.example.com I get the content in /var/www, not the one in /foo/www. I think I'm on the wrong track here.

3 Answers 3

5

The following snippet should work (without any warning):

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName example.com
  DocumentRoot /var/www
</VirtualHost>

<VirtualHost *:80>
 ServerName foo.example.com
 DocumentRoot /foo/wwww
</VirtualHost>

Make sure you read the documentation on Name-based Virtual Host Support to understand why it didn't work in the first place.

2
  • 4
    For those visitors whose eye's may be glazed from reading hundreds of forum posts and irrelevant results from Google searches: The key part is including the "NameVirtualHost" directive that @joschi includes in his snippet above. Name-based virtual hosts don't work without a NameVirtualHost directive.
    – anschauung
    Mar 19, 2010 at 20:43
  • If <VirtualHost secondary.ip:80> is present as well, you need a NameVirtualHost secondary.ip:80 as well. The NameVirtualHost *:80 does not cover it... (And <VirtualHost *:80> does not seem to work on the secondary IP for additional VirtualHosts) Mar 22, 2017 at 12:09
0

I got it working like this:

NameVirtualHost _default_:80

<VirtualHost _default_:80>
  ServerName example.com
  DocumentRoot /var/www
</VirtualHost>

<VirtualHost _default_:80>
 ServerName foo.example.com
 DocumentRoot /foo/wwww
</VirtualHost>

Although this gives a warning at http start:

[warn] NameVirtualHost _default_:80 has no VirtualHosts
0

Did you try adding the port number on the foo.example.com vhost ?

ie:

<VirtualHost foo.example.com:80>
    ServerName foo.example.com
    DocumentRoot /foo/www
</VirtualHost>

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .