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

Любые изменения в response.status внутри действияNotFound возвращаются обратно до 404, прежде чем ответ будет отправлен клиенту. Можно ли как-то обойти это? Я хотел бы иметь возможность изменить его на 410, когда обнаруживаю, что ресурс удален или 301, когда он перемещен навсегда.Grails: сопоставление кодов ответов, невозможно изменить код состояния http

+0

Я также попытался создать «после того, как» фильтр, но код состояния возвращается после выполнения фильтра. – Kimble

ответ

0

Если это не работает, попробуйте это в контроллере ошибок:

class ErrorController { 

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

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

Я действительно делал это так, но я немного обеспокоен тем, что это может смутить Google, потому что оно вернет 302 временную переадресацию на исходную страницу, а не 410. – Kimble

0

Попробуйте установить заголовок самостоятельно вручную response.setHeader()

Смежные вопросы