HttpServletResponse sendRedirect постоянный - программирование
Подтвердить что ты не робот

HttpServletResponse sendRedirect постоянный

Это перенаправит запрос с временным кодом статуса HTTP 302:

HttpServletResponse response;
response.sendRedirect("http://somewhere");

Но можно ли перенаправить его с постоянным кодом статуса HTTP 301?

4b9b3361

Ответ 1

Вам нужно установить статус ответа и заголовок Location вручную.

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

Настройка состояния до sendRedirect() не будет работать, так как sendRedirect() впоследствии переопределит его до SC_FOUND.

Ответ 2

Я использовал следующий код, но не работал у меня.

String newURL = res.encodeRedirectURL("...");
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.sendRedirect(newURL);

тогда я попробовал этот кусок кода, который работал у меня

String newURL = res.encodeRedirectURL("...");
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location", newURL);

это сработало для меня, у меня была та же проблема

как установить статус 301 при перенаправлении