我想在/ dev / path中设置自定义404页面和管理区域,所以我有这个app.yaml:
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 / analyze 时,它会重定向到 /_ah/login_required?continue=http://appengine_app.appspot.com/dev/analyze 它被 NotFoundPage 捕获。所以我不能在生产上使用管理部分。我可以拥有动态404页面和管理部分的网站吗?
UPD :如果我关闭NotFoundPage并尝试在生产服务器上获取 / dev / analyze ,它会重定向到 / _ ah / login_required?continue = http: //appengine_app.appspot.com/dev/analyze 并回复404错误
答案 0 :(得分:0)
您已将app.yaml
中的脚本句柄设置为admin-only,这意味着运行时将确保您在向代码发送请求之前以管理员身份登录。运行时没有办法知道页面会产生404 - 这可能是你甚至不希望非管理员用户发现的东西。
如果向未登录的用户发送404s很重要,您可以使app.yaml中的处理程序更具体 - 例如,使其仅匹配/dev/analyze
- 或者您可以转移管理员检查你的代码。