python appengine中的重定向问题

时间:2011-07-13 10:51:26

标签: python regex google-app-engine

我正在尝试创建一些别名::

util.run_wsgi_app(webapp.WSGIApplication([
    (r"/(.{1,2})", MainPage)
], debug=debug)

class MainPage(webapp.RequestHandler):
def get(self,token):
    token_dict = {
        'fb':'http://www.facebook.com/anilashanbhag',
        '+' :'http://plus.google.com/106274357148468411814',
        't' :'http://twitter.com/masteranil'
    }
    logging.debug(token)
    if token in token_dict:
        self.redirect(token_dict[token])
    else:
        self.redirect('/')

问题是fb和t工作但+不行。我认为appengine正在编码网址,但随后日志显示 / + 404 ....

2 个答案:

答案 0 :(得分:3)

+是RFC 1738 - Uniform Resource Locators (URL) specification中概述的保留字符。它是保留的,因为它被用作URL的分隔符语法的一部分。尝试使用URL编码您的角色(%2B)并查看是否有帮助。

答案 1 :(得分:0)

好的,为了完成:正确的答案是:: “%2B”是3个字符;这是应用程序正在接收的,404是因为处理程序不匹配超过2。