"404" (controller: 'error', action: 'pageNotFound')
響應發送到客戶端之前,對pageNotFound操作內response.status的任何更改都還原爲404。有沒有可能以某種方式解決這個問題?我希望能夠在檢測到資源已被刪除時將其更改爲410,或者在它永久移動時將其更改爲301。Grails:映射到響應代碼,無法更改http狀態代碼
"404" (controller: 'error', action: 'pageNotFound')
響應發送到客戶端之前,對pageNotFound操作內response.status的任何更改都還原爲404。有沒有可能以某種方式解決這個問題?我希望能夠在檢測到資源已被刪除時將其更改爲410,或者在它永久移動時將其更改爲301。Grails:映射到響應代碼,無法更改http狀態代碼
如果不工作試試這個在您的差錯控制:
class ErrorController {
def notFound = {
redirect(action: 'gone')
}
def gone= {
response.sendError(410, "Gone")
}
}
我實際上最終這樣做了,但我有點擔心它會混淆Google,因爲它會在原始頁面上返回302臨時重定向,而不是410。 – Kimble 2010-03-26 10:55:27
由response.setHeader()
我還試圖建立一個「後」的過濾器嘗試手動設置自己的頭,但狀態代碼在過濾器執行後恢復。 – Kimble 2010-03-27 01:44:05