[Zope] VHM / traverse subpath interaction bug?

Dieter Maurer dieter at handshake.de
Sun Oct 5 02:16:26 EDT 2008


Chris Withers wrote at 2008-10-3 15:32 +0100:
>Dieter Maurer wrote:
>>> Worse yet, if you go to:
>>>
>>> http://localhost:8080/VirtualHostBase/https/example.com:443/test/VirtualHostRoot/_vh_something/x/y/z
>>>
>>> ...you get:
>>>
>>> ['virtual_hosting', '/something', 'x', 'y', 'z']
>>>
>>> Anyone got any ideas as to what's going on here?
>> 
>> It is very strange that you want to define a Python Script as
>> root of your site. This use case is simple not supported.
>
>Who said anything about it being the root of a site? ;-)

Me.
You see the "VirtualHostRoot" in your url?
It defines the site root.

>I guess this wouldn't actually happen if the python script was after the 
>  vritual host's root...

Yes. The "VirtualHostRoot" is the place where the additional
steps added by the "VHM" are removed again.

> ...
>(see the __before_traverse__ hook code)
>
>>   A VHM needs to get control twice -- once to set things up
>>   and once to set the virtual root.
>>   It ensures to get control the second time by adding additional traversal
>>   steps.
>
>I bet repoze's VHM replacement doesn't need this ;-)
>I wonder how they do it?

If one is ready to give up traversal flexibility (and assumes that
the traversal steps seen in the urls are precisely those which will
enter the url generation), then the request can immediately be set up
as the second control would do. Of course, "Script (Python)" on the
path between "VirtualHostBase" and "VirtualHostRoot" would not work --
as this belongs to the traversal flexibility that would be lost :-)



-- 
Dieter


More information about the Zope mailing list