2010-03-25 83 views
0
"404" (controller: 'error', action: 'pageNotFound') 

響應發送到客戶端之前,對pageNotFound操作內response.status的任何更改都還原爲404。有沒有可能以某種方式解決這個問題?我希望能夠在檢測到資源已被刪除時將其更改爲410,或者在它永久移動時將其更改爲301。Grails:映射到響應代碼,無法更改http狀態代碼

+0

我還試圖建立一個「後」的過濾器嘗試手動設置自己的頭,但狀態代碼在過濾器執行後恢復。 – Kimble 2010-03-27 01:44:05

回答

0

如果不工作試試這個在您的差錯控制:

class ErrorController { 

    def notFound = { 
     redirect(action: 'gone') 
     } 

    def gone= { 
     response.sendError(410, "Gone") 
    } 
} 
+0

我實際上最終這樣做了,但我有點擔心它會混淆Google,因爲它會在原始頁面上返回302臨時重定向,而不是410。 – Kimble 2010-03-26 10:55:27

0

由response.setHeader()