On 6/27/06, Matus UHLAR - fantomas <[EMAIL PROTECTED]> 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 one
> > ^^^^^^^^^^^^^^^^^^^
> > 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 name
> > 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.
-B
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
" from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]