読者です 読者をやめる 読者になる 読者になる

zuntan02のはてなブログ

備忘録的なものです

nginxの301リダイレクト(ティレクトリマッピング)設定例

■概要
サイトの構造が変化したとき、Google検索エンジンがランクを下げない様に、あらかじめ旧URL→新URLへの301転送を設定するのですが、大量のページに対しては以下の方法でまとめて設定するのがよさそうだったのでメモ。

例)
■旧■http://hogehoge.com/dir1/dir2/index.html
   ↓
■新■http://hogehoge.com/dir1/index2.html
など


【参考サイト】
http://polidog.jp/2015/02/09/nginx/
nginxでmapモジュールを使って301リダイレクトを行う
※上記まんまです。以下は自分用メモ。。


# HttpMapModuleモジュールが利用できるか確認
nginx -V でconfigure argumentsを確認。
→ngx_http_map_moduleがdisableになっていないのでngx_http_map_moduleを利用可能


1)/etc/nginx/redirect_list.mapにはこんな感じで記述します。

~^/dir1/dir2/index.html$ /dir1/index2.html;

2)上記をインクルードします。今回は80へのリクエストに限定されるので、以下の様な感じ。

map $request_uri $new {
include /etc/nginx/redirect_list.map;
}

server {
listen 80;
server_name hogehoge.com;

if ($new) {
rewrite ^ $new permanent;
}
}

【動作メモ】
1)$request_uri にredirect_list.mapの一覧にヒットするものがあったら、$newに遷移先が入る
2)$newに値が入っていたら301リダイレクトする

広告を非表示にする