extern val web_node_to_node : web_node -> node;
+extern type web_place;
+extern val web_place_default : web_node -> web_place;
+extern val web_place : web_node -> your_ip -> web_place;
+extern val web_place_to_web_node : web_place -> web_node;
+extern val web_place_to_node : web_place -> node;
+extern val web_place_to_ip : web_place -> ip;
+{{Web places are combinations of web nodes (servers on which you are allowed to
+ run web sites) and IP addresses on which those servers should listen for
+ requests.}}
+
context Vhost;
{{A WWW virtual host}}
extern val use_cert : ssl_cert_path -> ssl;
extern val vhost : host -> Vhost => [Domain]
- {WebNodes : [web_node],
+ {WebPlaces : [web_place],
SSL : ssl,
User : your_user,
Group : your_group,
extern type location;
{{A valid URI prefix}}
-extern val location : location -> Vhost & Location => [Vhost & !Location];
+extern val location : location -> ^Vhost & Location => [Vhost & !Location];
extern val directory : your_path -> ^Vhost & Location => [Vhost & !Location];
{{Set some configuration specific to a URI prefix or filesystem directory,
respectively.}}
-extern val serverAlias : your_domain_host -> [Vhost];
+extern val serverAliasHost : your_domain_host -> [Vhost & !Location];
{{Give an alternate hostname for this vhost.}}
+extern val serverAlias : host -> [Vhost & !Location];
+{{Like serverAliasHost, but adds an alias for the given hostname at every domain
+ being configured.}}
+extern val serverAliasDefault : [Vhost & !Location];
+{{Like serverAliasDefault, but adds aliases for the domains being configured
+ instead of any of their hosts/"subdomains".}}