301 редирект в Grails
В настоящее время я делаю URL-перенаправления Grails 301 с использованием следующего довольно громоздкого метода "сервлет-стиля":
def action = {
...
if (shouldRedirect) {
response.status = 301
response.setHeader("Location", "http://url/to/redirect/to.html")
render("")
return false
}
...
}
Есть ли более чистый и более компактный способ Groovy / Grails'y для выполнения перенаправления 301?
Обратите внимание, что я имею в виду перенаправление 301, а не стандартное перенаправление 302, которое может быть достигнуто с помощью стандартных Grails redirect(...)
механизм.
2 ответа
Да, теперь можно использовать redirect
и укажите permanent
параметр как true
как описано здесь. Например:
redirect(url: "http://url/to/redirect/to.html", permanent: true)
redirect
механизм в Grails в настоящее время поддерживает permanent
параметр:
permanent
(необязательно) - если true, перенаправление будет выдано с кодом состояния HTTP 301 (постоянно перемещен), в противном случае будет выдан код состояния HTTP 302
Это должно адекватно решить вашу проблему, и очень Grails-у пути.