Java中的URL重定向返回302而不是301

Ran*_*ize 7 java redirect http-status-code-301

我正在使用此代码重定向url:

  response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
  response.sendRedirect(newURL);
Run Code Online (Sandbox Code Playgroud)

我能看到的是正确的重定向,但响应中返回的值是302而不是301.如何强制它为301?

JB *_*zet 21

如果您使用sendRedirect,它会将状态重置为302.您必须使用setHeader自行设置Location标头以使用301状态重定向.

示例代码:

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location", "http://somewhere/");
Run Code Online (Sandbox Code Playgroud)

从这个答案中拉出来: HttpServletResponse sendRedirect永久