リダイレクトするとき302→301にする
SEO対策等で302ではなく301のリダイレクトをしたいときの実装方法です。
■Javaの実装方法
@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でリダイレクトしろってことですね。