Alan, I do something similar, but I do it with an access rule only (and adding a simple Site Root to each folder that has all properties blank) Basically, I have an access rule that looks at the hostname (complete hostname, not just domain name) and then redirects to a properly named folder off the root. Here is the access rule if you want to take a gander: <dtml-let virtual_dir="_.string.lower(_.string.join(_.string.split(_.string.split(HTTP_HOST, ':')[0],'.')[:],'_'))"> <dtml-if "virtual_dir != 'manager_host_com'"> <dtml-if expr="virtual_dir"> <dtml-call "REQUEST.set('SiteRootPATH', '/')"> <dtml-call "REQUEST['TraversalRequestNameStack'].append(virtual_dir)"> <dtml-else> <dtml-call "REQUEST.set('SiteRootPATH', '/')"> </dtml-if> </dtml-if> </dtml-let> Basically, what this does is: 1. Grab the hostname, convert to lowercase (for those that are CAPS challenged) and then replace . with _ 2. Look and see if the hostname is the name of our management alias hostname (the hostname designated to be the Zope root, manager.host.com in this case) and if it is, simply do nothing and just continue on normally 3. If it's not our management hostname, then look and see if we have a folder that matches (IE: host_domain_com) 4. If we have a folder that matches, set our SiteRoot stuff, and add the path to the name stack Simple solution really, and was done before the creation of VHM's in Site Access. I have several servers running with this solution and it works quite well.. The one drawback to this method is the case of wanting more than one site pointed to the same folder. Haven't figured out a complete solution for that yet ;-) --Adam On 21 Mar 2001 23:01:26 -0600, Alan Capesius wrote:
I've put together the following solutions for virtual hosting of domains and I'm looking for some feedback from the list.
The solution uses TinyTable, Virtual Host Monster and AccessRule and a DTML method to process all inbound requests by domain name similar to the way in which SiteRoot script things. The best part is that once set, the AccessRule does not need to be modified to add new hosts. Host to folder mapping is performed via entries in the TinyTable, the rest of the configuration is static. I would think it would be simple to implement something like this as a product, though it is beyond my current skill set.