サイト移転でURLが変更になるときは301リダイレクトが欠かせません。
301リダイレクトを使えば、旧サイトを訪れたユーザを自動的に新サイトに誘導できるからです。
またgoogleやyahooなどの検索エンジンにサイトを移転したことを伝える有効な手段でもあります。
しかしnginxの301リダイレクトを使ったサイト移転の設定は、ネット上でなかなか情報がありませんでした。
apacheは沢山ありますが・・・
そこで今回はnginxの301リダイレクト方法をご紹介したいと思います。
nginxの301リダイレクト設定例
server{
server_name old-domain.com;
rewrite ^(.*)$ http://new-domain.com$1 permanent;
}
上記コードをnginx.confなどに追加してください。
これで旧サイト「old-domain.com」にアクセスがあれば、新サイト「new-domain.com」に301リダイレクトされます。
リダイレクト例)
http://old-domain.com → http://new-domain.com
http://old-domain.com/hoge/hoge.html → http://new-domain.com/hoge/hoge.html
パラメータの解説
server_name
ホスト名を記載します。
複数のドメインを運用している場合、ここでドメインごとの処理を振り分けます。
rewrite
リダイレクトの宣言です。
一時的な移転
一時的な移転の場合、以下のように記載します
server{
server_name old-domain.com;
rewrite ^(.*)$ http://new-domain.com$1 redirect;
}
「permanent」が「redirect」に変わっています。
これによりhttpステータスが301から302に変わり、一時的な移転だとユーザや検索エンジンに伝えることができます。