HttpServletResponse sendRedirect постоянный Это перенаправит запрос с временным кодом статуса HTTP 302: HttpServletResponse response; response.sendRedirect("http://somewhere"); Но можно ли перенаправить его с постоянным кодом статуса HTTP 301? Ответ 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 при перенаправлении
Ответ 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 при перенаправлении