[Zope3-Users] Apache config. for skinned sites

andrew andrew at reurbanise.co.nz
Thu Aug 21 01:04:30 EDT 2008


Hi All,

Say I've got a site at:

http://127.0.0.1:8080/mysite

and I've mapped this to a domain (mysite.com) pointed to by an Apache
rewrite rule:

RewriteRule ^/(.+) http://127.0.0.1:8080/mysite/++vh++http:
%{HTTP_HOST}:80/++/$1 [L,P]

but I've now created a skin for the site that I want to point
skin2.mysite.com at. The following rewrite rule works:

RewriteRule ^/(.+) http://127.0.0.1:8080/mysite/++vh++http:
%{HTTP_HOST}:80/++/++skin++skin2/$1 [L,P]

except that the skin URL component ends up in viewlet URLs, which sort
of makes sense since it's after the virtual host stuff. However, it
would be nice to get rid of the skin URL component altogether in page
resources since it's being handled by Apache already.

Also, I still want to be able to test the skin at:

http://mysite.com/++skin++skin2/

so in this case the skin component would have to stay there.

I've tried moving the skin URL component before the virtual host
component in the rewrite rule:

RewriteRule ^/(.+) http://127.0.0.1:8080/mysite/++skin++skin2/++vh
++http:%{HTTP_HOST}:80/++/$1 [L,P]

but when accessing, e.g., http://skin2.mysite.com/testpage I get:

File
'/opt/vortex/buildout/vortex/var/eggs/zope.publisher-3.4.1-py2.4.egg/zope/publisher/http.py', line 568 in shiftNameToApplication
  raise ValueError("Can only shift leading traversal "
ValueError: Can only shift leading traversal names to application names

Any ideas how I can have my cake and eat it too ? :-)

Cheers, Andrew.



More information about the Zope3-users mailing list