[Zope] redirect to a renamed folder

Paul Winkler pw_lists@slinkp.com
Fri, 21 Jun 2002 17:08:41 -0400


Maybe this is what you want:
http://www.zope.org/Members/gcoelle/LinkedFolder

I haven't tried it.

--PW


On Fri, Jun 21, 2002 at 07:45:39PM +0100, Tim Hicks wrote:
> Now I'm pretty sure this is some sort of faq, but I'm really having trouble
> doing what I thought would be simple.
> 
> The Problem:
> 
> I have a site which needs to have one of its subfolders renamed from (say)
> 'foo' to 'bar'.  All subfolders within 'foo' (now 'bar') are the same.  No
> problem so far, but people will have the old url's bookmarked, so I want to
> redirect people requesting for example: /site/foo/blacksheep to
> /site/bar/blacksheep.
> 
> What I've Tried:
> 
> I figured I'd user standard_error_message to catch 'NotFound' errors, and
> perform a redirect.  This is proving more difficult than I'd anticipated.
> Here is what I came up with:
> 
> <dtml-if "error_type">
>   <dtml-if "error_type == 'NotFound'">
>     <dtml-let new_path="_.string.join(_.string.split(error_value, '/')[2:],
> '/')">
>     <dtml-call "RESPONSE.redirect('http://192.168.2.2:9980/test/'+new_path,
> status=301, lock=1)">
>     </dtml-let>
>   </dtml-if>
> <dtml-else>
> missed it
> </dtml-if>
> 
> The problem is, this seems to redirect to something looking like
> http://192.168.2.2:9980/test/H2> (including the >).  I guess 'error_value'
> is not the variable I want.  I thought maybe I would want
> TraversalRequestNameStack, but that doesn't appear right either.  Really, I
> want a list of url segments so I can drop in my new folder name in place of
> the old one, rebuild the url then redirect, but I'm not sure how to do that.
> Any ideas?
> 
> cheers
> 
> tim
> 
> ps Another way I thought of was to maintain an empty folder named 'foo' with
> an accessrule python script in it that catches the traverse_subpath and does
> a redirect, but I'm not sure if that should even work in theory.  I haven't
> used accessrules before, and I had trouble getting things to work.  From the
> archives, I found that I can't use RESPONSE.redirect() from an accessrule,
> but have to use raise.  However, I couldn't get this to work either.
> 
> 
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )

-- 

Paul Winkler
home:  http://www.slinkp.com
"Muppet Labs, where the future is made - today!"