httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brian Rectanus" <>
Subject Re: [users@httpd] (again) Can not define "default" name virtual host
Date Thu, 29 Jun 2006 22:04:35 GMT
On 6/27/06, Matus UHLAR - fantomas <> wrote:
> > > <CITE>
> > > Now when a request arrives, the server will first check if it is using an IP
> > > address that matches the NameVirtualHost. If it is, then it will look at
> > > each <VirtualHost> section with a matching IP address and try to find
> > >                                   ^^^^^^^^^^^^^^^^^^^
> > > where the ServerName or ServerAlias matches the requested hostname. If it
> > >           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > finds one, then it uses the configuration for that server. If no matching
> > > virtual host is found, then the first listed virtual host that matches the
> > > IP address will be used.
> > > </CITE>
> > >
> > > They only say, that the requested host name should match ServerName and
> > > ServerAlias. But, when the name provided in <VirtualHost> matches the
> > > requested, the virtual host matches too.
> On 27.06.06 14:31, Neil A. Hillard wrote:
> > No, the VirtualHost entry tells Apache _where to listen_ for the request
> > and nothing else.
> That is, what docs says and how I understand it.
> > The VirtualHost must match the IP:port combination of the request
> > in order for that virtual host to stand a chance of
> > receiving the request.
> by "the request" I understood the destination IP address and port where the
> request came, independently on the Host: header.
> by "host receiving the request" I understood the virtual host (on the given
> IP) whose ServerName or ServerAlias match the provided Host: header. If none
> VirtualHost matches, the first has to be used.
> > end of story.  Apache doesn't do it and unless you write a patch then I
> > suspect no one else will.
> Then, can at least someone help me to write such patch?

I was curious as well as to *why* this is the way it is, so I looked
in the source...

This is intended for some reason or another.  In the source, the
<VirtualHost> name is searched first (in order of appearance in conf
file) and returns a match before ServerName/Alias is even tried.
There is even a comment in the source stating that "If this is a
NameVirtualHost then we may not be doing the Right Thing".  So you
could argue a bug, but this goes all the way through to 2.2.2 so it
will never be changed, heh.

So, as previously stated, just always configure your VH with
ServerName same as <VirtualHost> tag as the *first* one in the file.
This will work fine.

As for patching (not recommended), you could change
ap_matches_request_vhost in http_vhost.c to run the matches_aliases
before the VirtualHost name matches.  But, I think changing the order
of your conf would be easier.


The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:> for more info.
To unsubscribe, e-mail:
   "   from the digest:
For additional commands, e-mail:

View raw message