2013-10-30

2013-10-30 21:14

Javaのresponse.sendRedirect

ページの移動などによりURLが変わり、旧ページに接続した人を新ページにリダイレクトさせる時、
ApacheではなくJavaのresponse.sendRedirectを使うと HTTPステータスコードが302になります。

HTTP Status Code【302】とは?

 301 Moved Permanently(恒久的な移転)
 302 Moved Temporarily(一時的な移転)
ステータス・コードが恒久的な移転の際に用いる301ではなく、一時的な移転の際に用いる302を使うと
旧ページの評価などの情報が新ページに引き継がれませんので、SEO対策としてはよくありません。
恒久的な移転の場合は301を使う必要があります。

Javaで【301】リダイレクトするには?

responseのsetStatusとsetHeaderを使いますとHTTPステータスコードを指定して他のページへ移動するのが可能になります。
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location","http://www.test.com");
return;
※因みに、以下のように使うと【302】になります。
response.sendRedirect("http://www.test.com");
return;

//もしくは
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
response.setHeader("Location","http://www.test.com");

結果

・sendRedirectを使った場合


・setStatus、setHeaderを使った場合


0 コメント:

コメントを投稿