当我使用包含'%2f'的参数时,我得到404未找到的响应在Google App Engine / Python的url路径中(仅在生产服务器上,而不在我的mac开发服务器上)。
我使用Kay-framework(http://kay-docs.shehas.net/index.html)作为我的GAE / Python框架。
我设置了如下所示的网址。
Rule('/rest/article/<string:article_id>', endpoint='article',view='myapp.views.article'),
请求此网址在我的Mac开发服务器中正常工作。服务器返回200 OK。
http://localhost:8080/rest/article/foobar%2Bfoobar%2Ffoobar => 200
但是,当我在GAE生产服务器上向此URL发送请求时,GAE服务器返回404。
http://foo-bar-app.appspot.com/rest/article/foobar%2Bfoobar%2Ffoobar => 404
我必须使用包含&#34; /&#34;的参数。 (网址编码为&#34;%2f&#34;)。
有没有办法解决这个问题?
答案 0 :(得分:3)
我自己刚遇到这个问题。由于我可以控制URL,因此我可以逃避&#39;%&#39;%本身,然后由GAE正确识别。即:
linkUrl = string.replace(linkUrl, '%2F', '%252F') # Workaround to avoid %2F issue on GAE servers
丑陋,但在我的情况下有效。