"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