Я пытаюсь перенаправить с 301 Status Code
(вы знаете, я хочу быть дружественным к SEO и т. Д.).Перенаправление с 301 статусом в Spring MVC 4 без ModelAndView
Я использую InternalResourceViewResolver
, поэтому я хотел использовать какой-то код, похожий на return "redirect:http://google.com"
в моем контроллере. Это хотя бы отправить 302 Status Code
То, что я пытался использует HttpServletResponse
установить заголовочные
@RequestMapping(value="/url/{seo}", method = RequestMethod.GET)
public String detail(@PathVariable String seo, HttpServletResponse response){
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return "redirect:http://google.com";
}
Он еще вернется 302
.
После проверки документации и результатов Google я придумал следующее:
@RequestMapping(value="/url/{seo}", method = RequestMethod.GET)
public ModelAndView detail(@PathVariable String seo){
RedirectView rv = new RedirectView();
rv.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
rv.setUrl("http://google.com");
ModelAndView mv = new ModelAndView(rv);
return mv;
}
Он работает прекрасно, как и ожидалось, возвращая код 301
Я хотел бы достичь без ModelAndView (может быть, это прекрасно, хотя). Является ли это возможным?
ПРИМЕЧАНИЕ: включенные фрагменты - это только части контроллера детали, и перенаправление происходит только в некоторых случаях (поддержка устаревших URL-адресов).
Вы можете напрямую вернуть «RedirectView». –
Мне все равно потребуется изменить тип возвращаемого метода, не так ли? – SirKometa