Перенаправление URL в Java возвращает 302 вместо 301 - PullRequest
7 голосов
/ 06 января 2012

Я использую этот код для перенаправления URL:

  response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
  response.sendRedirect(newURL);

я вижу правильное перенаправление, но значение, возвращаемое в ответе, равно 302 вместо 301. Как я могу принудительно установить его на 301

1 Ответ

21 голосов
/ 06 января 2012

Если вы используете sendRedirect, он сбросит статус на 302. Вам придется использовать setHeader, чтобы самому установить заголовок Местоположение для перенаправления с использованием статуса 301.

Пример кода:

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location", "http://somewhere/");

Получено из этого ответа: HttpServletResponse перманент sendRedirect

...