2011-03-23 44 views
0

我想設置自定義的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錯誤

回答

0

您已將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