[Zope] Multiple Sites and Apache

Thomas T. Veldhouse veldy@veldy.net
Thu, 19 Jul 2001 09:11:20 -0500


Yes, this worked perfectly.  Even though it was not actually a virtual host,
but multiple sites on the same host using one instance of Zope.  Excellent!

Thanks for the advice and I also thank the author(s) of that page.

Tom Veldhouse
veldy@veldy.net

----- Original Message -----
From: "Mike Renfro" <renfro@tntech.edu>
To: "Thomas T. Veldhouse" <veldy@veldy.net>
Cc: "Philip Aylesworth" <paylesworth@stclaircollege.ca>; <zope@zope.org>
Sent: Thursday, July 19, 2001 8:43 AM
Subject: Re: [Zope] Multiple Sites and Apache


> On Wed, Jul 18, 2001 at 08:05:55PM -0500, Thomas T. Veldhouse wrote:
>
> > Actually, I do have another domain that I host as a virtual domain.
> > It is also in need of development.  I wish I could find some more
> > "readable" documentation on the Virtual Host Monster though.  The
> > current Zope hosted docs are confusing.  The book leaves it to the
> > administrators guide and the Administrators guide is unfinished.
>
> Tom, have you checked out my howto at
> http://www.zope.org/Members/mwr/VHosts_With_Zope_Default ? It covers
> Zope plus Apache static, PHP, Jserv, CGI, and UserDir content. Plus,
> at least one member of the Digicool cabal liked it.
>
> But more to the point with VHM docs, let's say I have a top-level
> folder in my Zope tree named "CAE" that I want to contain all the
> content for a particular virtual host, www.cae.tntech.edu.
>
> The third paragraph of the VHM Zope-hosted docs says "If the URL path
> of a request begins with "/VirtualHostBase/http/www.foo.com", for
> instance, then URLs generated by Zope will start with
> http://www.foo.com." Ok, the main Zope-generated URL you'd want to
> worry about is the one in the <base href> tag in the header of each
> page.
>
> So thus far, we know that if we want any URLs to cleanly derive from
> the www.cae.tntech.edu site, Zope will definitely have to see a
> request that begins with /VirtualHostBase/http/www.cae.tntech.edu --
> and since *that particular request* is not something you'd expect the
> user to type in themselves, it'll have to come from an Apache rewrite
> rule.
>
> The last part of the third paragraph says we'll probably want to dump
> the port number, so the actual request to Zope will be
> /VirtualHostBase/http/www.cae.tntech.edu:80
>
> Fourth paragraph translation -- anything that comes before the word
> VirtualHostRoot in the request will be stripped from any generated
> URLs. We don't want URLs of the form
> http://www.cae.tntech.edu/CAE/foo, so we need to make sure that the
> CAE entry comes before the word VirtualHostRoot in the request.
>
> Now our idea of the request Zope sees is almost complete: Zope sees a
> request of
> /VirtualHostBase/http/www.cae.tntech.edu:80/CAE/VirtualHostRoot, and
> will render it to the browser as http://www.cae.tntech.edu/.
>
> >From here on out, it's all Apache RewriteRules. You want to make sure
> that any requests to Apache for http://www.cae.tntech.edu/foo are sent
> to Zope as
> /VirtualHostBase/http/www.cae.tntech.edu:80/CAE/VirtualHostRoot/foo --
> and that's the gist of sixth paragraph, which is really a far more
> condensed version of what I just spent the last page or so explaining.
>
>   For example, suppose you want to publish Folder "/foo" as
>   http://www.foo.com/, where Zope is running on port 8080 behind Apache
>   running on port 80. You place a Virtual Host Monster in the root Zope
>   folder, and use Apache to rewrite "/(.*)" to
>
http://localhost:8080/VirtualHostBase/http/www.foo.com:80/foo/VirtualHostRoo
t/$1
>
> The actual RewriteRule for my example site would be:
>
>   RewriteRule ^/(.*)
http://my.real.host.name:9673/VirtualHostBase/http/www.cae.tntech.edu:80/CAE
/VirtualHostRoot/$1 [P]
>
> all on one line.
>
> --
> Mike Renfro  / R&D Engineer, Center for Manufacturing Research,
> 931 372-3601 / Tennessee Technological University -- renfro@tntech.edu
>