我正在尝试创建一个别名:
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。。。。在
好吧为了完成:正确答案是: “%2B”是3个字符;这是应用程序接收到的,404是因为处理程序不匹配超过2个字符。在
+是在RFC 1738 - Uniform Resource Locators (URL) specification中概述的保留字符。它被保留,因为它在URL中用作分隔符语法的一部分。请尝试对字符(%2B)进行URL编码,看看这是否有帮助。在
相关问题 更多 >
编程相关推荐