2010-03-25 44 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()