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-у пути.

Другие вопросы по тегам