谷歌的AppEngine自定义404动态页面

问题描述:

我想设置自定义的404页和管理区中的/ dev /路径,所以我有这样的app.yaml:谷歌的AppEngine自定义404动态页面

application: appengine_app 
version: 0-00-1 
runtime: python 
api_version: 1 

handlers:  

- url: /dev/.* 
    script: dispatch.py 
    login: admin 

- url: /.* 
    script: dispatch.py 

与下一个代码

app = webapp.WSGIApplication([ ('/dev/analyze', AnalyzePage) 
           , ('/.*', NotFoundPage) ] 
           , debug=False) 

在本地机器上一切正常。但是,当我试图让的/ dev /分析生产服务器重定向到/_ah/login_required?continue=http://appengine_app.appspot.com/dev/analyze,并通过NotFoundPage逮住上。所以我不能在生产中使用管理员部分。我可以拥有动态404网页和管理员网站部分吗?

UPD:如果我关掉NotFoundPage,并得到的/ dev /分析生产服务器上重定向到/_ah/login_required?continue=http://appengine_app.appspot.com/dev/analyze和响应404错误

您已将app.yaml中的脚本句柄设置为仅管理,这意味着运行时将确保您以管理员身份登录,然后将请求发送到您的代码。运行时无法知道该页面将导致404错误 - 这可能是您可能不希望非管理员用户发现的东西。

如果您向未登录的用户发送404是很重要的,您可以使app.yaml中的处理程序更加具体 - 例如,使它仅匹配/dev/analyze - 或者您可以将管理员检查转移到您的码。

+0

我为我的应用程序设置联合登录,但未设置登录页面处理程序。我认为有些是默认存在的。当我切换到谷歌帐户API和GET /开发/分析它显示默认登录页面,一切按计划进行 – 2011-03-24 06:48:20

+0

@whalebot我不知道我明白。那么问题是什么?你不能只是创建一个登录页面处理程序,并将其设置为不需要登录? – 2011-03-25 00:52:32