2014-01-30 2 views
0

WebPrep2에 PathPrefixRoute에있는 일련의 확립 된 경로를 리디렉션하고 싶습니다./foo/bar와 foo/baz 같은 것이 newfoo/bar와 newfoo/baz로 리디렉션됩니다.WebApp2의 PathPrefixRoutes 리디렉션

import webapp2 
from webapp2_extras import routes 
.... 
routes.PathPrefixRoute('/foo', [ 
    webapp2.Route('/bar', 'BarHandler', name='bar_handler'), 
    webapp2.Route('/baz', 'BazHandler', name='baz_handler'), 
    # Many more routes below this. 
]) 
.... 

내가 이전 URL을 방문하여 사람들이 제대로 새로 연결되어 있는지 확인하면서

import webapp2 
from webapp2_extras import routes 
.... 
routes.PathPrefixRoute('/newfoo', [ 
    webapp2.Route('/bar', 'BarHandler', name='bar_handler'), 
    webapp2.Route('/baz', 'BazHandler', name='baz_handler'), 
    # Many more routes below this. 
]), 
.... 

와 끝까지 싶습니다 여기

내가 오늘 할 것이다 무엇 .

미리 감사드립니다.

답변

0

글쎄, 당신은 당신의 주요 애플 리케이션

app = webapp2.WSGIApplication([ 
    ('/foo/(\w+)', OldFooHandler), 
    ... 

을에 /foo/some_arg위한 캐치 모두를 설정 한 다음 새

class OldFooHandler(webapp2.RequestHandler): 
    def get(self, second_arg): 
    self.redirect('/newfoo/%s' % second_arg) 
에 이전 처리기에 대한 모든 요청을 리디렉션하는 클래스를 가질 수있다

물론 경로 처리기를 사용하여 전달 된 모든 것을 캐치 할 수 있습니다. /newfoo

+0

답장을 보내 주셔서 감사합니다! 나는 추가적인 핸들러를 추가하지 않고 그것을 할 수있는 방법이 있기를 바라고있다. webapp2.RedirectHandler가 단일 라우트에서 사용하는 것과 비슷하지만 본질적으로 "이 접두사는 연결되어있는 모든 것을 접두어로 리디렉션합니다. – betaorbust