Google AppEngine настраиваемая динамическая страница 404 - PullRequest
0 голосов
/ 24 марта 2011

Я хочу установить пользовательскую страницу 404 и зону администратора в / dev / path, поэтому у меня есть 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 )

На локальной машине все ок. Но когда я пытаюсь GET / dev / analysis на Производственном сервере, он перенаправляет на / _ ah / login_required? Continue = http://appengine_app.appspot.com/dev/analyze и перехватывает NotFoundPage . Поэтому я не могу использовать административную часть на производстве. Могу ли я иметь динамическую страницу 404 и административную часть сайта?

UPD : если я выключаю NotFoundPage и пытаюсь GET / dev / analysis на производственном сервере, он перенаправляет на / _ ah / login_required? Continue = http://appengine_app.appspot.com/dev/analyze и ответ с ошибкой 404

1 Ответ

0 голосов
/ 24 марта 2011

Вы установили дескриптор сценария в app.yaml только для администратора, что означает, что среда выполнения гарантирует, что вы вошли в систему как администратор, прежде чем отправлять запросы к вашему коду. У среды выполнения нет возможности узнать, что страница приведет к 404 - и это, вероятно, то, что вы, возможно, даже не захотите открывать пользователям без прав администратора.

Если важно, чтобы вы отправляли 404 с пользователями, которые не вошли в систему, вы можете либо сделать обработчик в app.yaml более конкретным - например, сделать так, чтобы он совпадал только с /dev/analyze - или вы можете перенести проверку администратора в ваш код.

...