当我在Google App Engine / Python Production的请求URL路径中使用%2F时,返回404

时间:2014-09-27 15:09:23

标签: python google-app-engine

当我使用包含'%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;)。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:3)

我自己刚遇到这个问题。由于我可以控制URL,因此我可以逃避&#39;%&#39;%本身,然后由GAE正确识别。即:

linkUrl = string.replace(linkUrl, '%2F', '%252F') # Workaround to avoid %2F issue on GAE servers

丑陋,但在我的情况下有效。