For some reason, Zope sometimes add a <base href=> tag in HTML documents. When Zope is used in combination with Apache and Apache is configured to rewrite incoming requests to a Zope folder that is not the root folder, this will cause trouble if there are any relative URLs in the documents. The way Zope determines the URL in the base href in combination with the way Apache rewriting works will often, after clicking around the site a few times, lead to something like www.mysite.org/mysiteroot/mysiteroot/mysiteroot/somedoc in the address line of the browser. It looks ugly, it tricks the browser from caching documents properly and visited links will look unvisited. Does anybody know why <base href> is inserted automatically? Any tricks for turning it off?
At 08:21 PM 6/10/99 +0200, Christian Andreassen wrote:
For some reason, Zope sometimes add a <base href=> tag in HTML documents. When Zope is used in combination with Apache and Apache is configured to rewrite incoming requests to a Zope folder that is not the root folder, this will cause trouble if there are any relative URLs in the documents. The way Zope determines the URL in the base href in combination with the way Apache rewriting works will often, after clicking around the site a few times, lead to something like www.mysite.org/mysiteroot/mysiteroot/mysiteroot/somedoc in the address line of the browser. It looks ugly, it tricks the browser from caching documents properly and visited links will look unvisited.
Does anybody know why <base href> is inserted automatically? Any tricks for turning it off?
Zope adds a base tag whenever an implicit method is being called, such as index_html or a method referenced by a :method field. This is so that relative URL's in such methods will be relative to the right place. There is a RESPONSE.setBase() method that can be called to change the base; but you'll need to know what the base should be, or else you'll have to forego all use of implicit methods. There may be a simpler solution, however. ZPublisher determines the base using the SERVER_URL and SCRIPT_NAME environment variables. If you can rewrite those from Apache to match the way Zope looks to the rest of the world, then you're all set. If that can't be done, perhaps a patch to allow a different variable to override this (along the lines of HTTP_CGI_AUTHORIZATION) is in order.
participants (2)
-
Christian Andreassen -
Phillip J. Eby