在Python Appengine中重定向的问题

2024-04-20 14:21:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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正在对url进行编码,但后来日志显示了这一点 /+404。。。。在


Tags: rundebugselfcomtokenapphttpwsgi
2条回答

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

+是在RFC 1738 - Uniform Resource Locators (URL) specification中概述的保留字符。它被保留,因为它在URL中用作分隔符语法的一部分。请尝试对字符(%2B)进行URL编码,看看这是否有帮助。在

相关问题 更多 >