HttpServletResponse sendRedirect永久
这将redirect一个临时的 302 HTTP状态码的请求:
HttpServletResponse response; response.sendRedirect("http://somewhere");
但有可能redirect一个永久的 301 HTTP状态码?
您需要手动设置响应状态和Location
标题。
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader("Location", "http://somewhere/");
在sendRedirect()
之前设置状态将不起作用,因为之后sendRedirect()
会将其重写为SC_FOUND
。
我用下面的代码,但没有为我工作。
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);
这工作对我来说,我有同样的问题
如何在redirect时将状态设置为301