4.6. Mass Virtual Hosting with mod_vhost_alias
Problem
You want to host many virtual hosts, all of which have exactly the same configuration.
Solution
Use VirtualDocumentRoot and VirtualScriptAlias provided by mod_vhost_alias:
VirtualDocumentRoot /www/vhosts/%-1/%-2.1/%-2/htdocs VirtualScriptAlias /www/vhosts/%-1/%-2.1/%-2/cgi-bin
Discussion
This recipe uses directives from mod_vhost_alias, which you may not have installed when you built Apache, as it is not one of the modules that is enabled by default.
These directives map requests to a directory built up from pieces of the hostname that was requested. Each of the variables represents one part of the hostname, so that each hostname is mapped to a different directory.
In this particular example, requests for content from
www.example.com are served from the
directory /www/vhosts/com/e/example/htdocs, or from
/www/vhosts/com/e/example/cgi-bin
(for CGI requests). The full range of available variables is shown in
Table 4-1.
Table 4-1. mod_vhost_alias variables
Variable | Meaning |
|---|---|
%% | Insert a % |
%p | Insert the port number of the virtual host |
%M.N | Insert (part of) the name |
M and N may have positive or negative integer values, the meanings of which are shown in Table 4-2.
Table 4-2. Meanings of variable values
Value | Meaning |
|---|---|
0 | The whole name |
1 | The first part of the name |
-1 | The last part of the name |
2 | The second part of the name |
-2 | The next-to-last part of the name |
2+ | The second, and all following, parts |
-2+ | The next-to-last, and all preceding, parts |
When the value is placed in ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access