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/VirtualHost...
...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