2012-01-06 38 views
5

我使用這個代碼來重定向URL:URL重定向返回302,而不是301

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

我所看到的是一個正確的重定向,但在響應中返回的值是302,而不是301。我該如何強迫它成爲301?

回答

19

如果您使用sendRedirect,它會將狀態重置爲302.您必須使用setHeader將位置標頭自己設爲使用301狀態重定向。

示例代碼:

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); 
response.setHeader("Location", "http://somewhere/"); 

從這個答案拉到: HttpServletResponse sendRedirect permanent

+0

我做到了添加此:response.setHeader( 「位置」,NEWURL); \t \t response.setHeader(「Connection」,「close」);但它不起作用 – Randomize 2012-01-06 11:09:11

+0

請定義「不工作」。 – 2012-01-06 11:15:41

+0

發現問題:)現在工作,我忘了刪除response.sendRedirect(newURL);對不起大家! – Randomize 2012-01-06 11:19:55