Mod evhost » History » Revision 20
Revision 19 (heavyhttpd, 2009-01-11 03:56) → Revision 20/23 (heavyhttpd, 2009-01-11 06:10)
h1. Enhanced Virtual-Hosting *Module: mod_evhost* {{>toc}} h2. Description mod_evhost builds the document-root based on a pattern which contains wildcards. Those wildcards can represent parts of the submitted hostname <pre> %% => % sign %0 => domain name + tld %1 => tld %2 => domain name without tld %3 => subdomain 1 name %4 => subdomain 2 name </pre> evhost.path-pattern = "/home/www/servers/%3/pages/" Note that % patterns in evhost.path-pattern have the special meanings listed above. They do *not* have the same standard meanings as for % substitutions in url.redirect and url.rewrite-*. patterns defined by the lighttpd configuration file syntax. h2. Options evhost.path-pattern pattern with wildcards to be replace to build a documentroot h2. Samples *User vhosts* <pre> $HTTP["host"] =~ "users\.example\.org" { evhost.path-pattern = "/home/%4/public_html/" } </pre> http://johndoe.users.example.org/ => /home/johndoe/public_html/ h2. General Example <pre> server.document-root = "/home/user/sites/default/site" evhost.path-pattern = "/home/user/sites/%0/site/" </pre> If example.org is requested, and /home/user/sites/example.org/site/ is found, that path becomes the docroot. If example.net is requested but no directory named /home/user/sites/example.net/site/ exists, then the docroot remains /home/user/sites/default/site h2. A Bad Example <pre> server.document-root = "/home/user/sites/" evhost.path-pattern = "/home/user/sites/%0/site/" </pre> server.document-root should never point to the directory with your evhost subdirs. Here's why: Assume foo.example.com and bar.example.com both point to the server. Assume that /home/user/sites/foo.example.com/site exists, but /home/user/sites/bar.example.com/site does not. If foo.example.com is configured via mod_auth: <pre> $HTTP["host"] == "foo.example.com" { auth.require = ( "/" => ... ) } </pre> We could bypass the configured auth by accessing http://bar.example.com/foo.example.com/site/