ServerAlias not working
Make sure that the order of precedence in configuration directives matches how Apache should handle the request - i.e. you won't have much luck if your directives load like this:
- example.com
- default/catch-all
- universal.lv
Doesn't matter whether they are declared in a single file or multiple files - so long as "universal.lv" is last, it will not be reached because the default/catch-all vhost will precede it.
I usually name my default/catch-all config "z-default.conf" (or, if you have a domain that starts with a "z", "zz" ... etc) for this reason, to ensure that it is processed only if no other vhost matches.
Try renaming accordingly.
Updated: So as not to confuse w/the _default_
VirtualHost directive
Using wildcard DNS to direct all requests to example.com to the server's IP (catches mis-keyed subdomains), Apache parses the following configuration files:
- 000-default.conf -
VirtualHost _default_:80
/ServerName <hostname>
- catch requests against the server's IP (can redirect to primary domain or simply block with the defaultDirectory
specified inconf.d/security
) - example.conf -
VirtualHost *:80
/ServerName www.example.com
- example2.conf -
VirtualHost *:80
/ServerName www.example2.com
- zzz-example.conf -
VirtualHost *:80
/ServerName example.com
/ServerAlias *.example.com
- redirects to canonical www domain - zzz-example2.conf -
VirtualHost *:80
/ServerName example2.com
/ServerAlias *.example2.com
- redirects to canonical www domain
As documented, Apache selects the first matching VirtualHost (i.e. _default_:80
) but this behavior is not desirable if you are using a wildcard in a ServerAlias
directive.