spring mvc/spring boot 301的坑
HttpServletResponse的sendRedirect 永远返回302不会是301
就算设置setStatus(301)也没有用, sendRedirect是个便捷方法,不会去检查status code
spring 的return "redirect /xxx" 也就是这个方法的简单封装,也是无法返回301
正确返回301 的方式有
1,
RedirectView redirectView = new RedirectView("/xx");
redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
return new ModelAndView(redirectView);
2,
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location",redirectUrl);
3,
@ResponseStatus(HttpStatus.MOVED_PERMANENTLY)