2012-02-20 56 views
1

可能重复:
URL redirection in Java return 302 instead of 301SC_MOVED_PERMANENTLY导致302

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); 
response.sendRedirect(redirectUrl); 

我用这个在我redirectcontroller给重定向301状态。但是当我在header checker中检查页面的标题时,它给出了302(暂时移动)结果。

答:

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); 
response.setHeader("Location", redirectUrl); 

回答

4

是的,你打电话sendRedirect这是证明这样的(重点煤矿):

使用指定的重定向发送一个临时重定向响应客户端位置网址。

换句话说,当你明确地呼叫sendRedirect时,你的第一行是完全不相关的。如果你想明确它,你可以设置状态,设置适当的标题,然后让响应正常结束。

+1

@Downvoter:照顾评论? – 2012-02-20 13:00:24

+0

感谢您的快速回答。我需要添加什么来使其重定向到301? – 2012-02-20 13:03:32

+0

@ user1173655:正如我所说的 - 自己设置相关的重定向URL头(我不记得它是什么),设置状态,因为你已经在做,它应该没问题。 – 2012-02-20 13:13:17