pgoriの怠惰なブログ

適当なことを適当に書いていく日記

リダイレクトするとき302→301にする

SEO対策等で302ではなく301のリダイレクトをしたいときの実装方法です。

Javaの実装方法

JavaっていうかSAStruts

@Execute(validator = false)
public String index() {
	String url = "url";
	// レスポンス
	HttpServletResponse response = ResponseUtil.getResponse();
	// ステータスに301をセット
	response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
	// ロケーションに遷移先URLをセット
	response.setHeader("Location", url);
	return null;
}

Apacheの設定

ついでにApacheでrewriteするとき301にする方法も。

RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R=301,NE]

R=301を設定してあげればいけます。



301と302の意味は
301 Moved Permanently
リクエストされたリソースは新しい恒久的なURIを割り当てられたので、このリソースを今後の参照するときには、返されたURIの一つを使用すべきである。
302 Found
リクエストされたリソースは、一時的に異なるURIにある。

http://www.asahi-net.or.jp/~ax2s-kmtn/ref/status.html
からの引用です。

リダイレクト先がもう変わらないなら301でリダイレクトしろってことですね。