谷歌的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
- 或者您可以将管理员检查转移到您的码。
我为我的应用程序设置联合登录,但未设置登录页面处理程序。我认为有些是默认存在的。当我切换到谷歌帐户API和GET /开发/分析它显示默认登录页面,一切按计划进行 – 2011-03-24 06:48:20
@whalebot我不知道我明白。那么问题是什么?你不能只是创建一个登录页面处理程序,并将其设置为不需要登录? – 2011-03-25 00:52:32