nginxでドメイン間301リダイレクト

今までnginxのリダイレクトにはrewriteを使っていたのですが、どうやらこれはバッドプラクティスっぽいです。正解は、returnを使うようです。

以下が非常に参考になります。

hachibeechan.hateblo.jp

仮想サーバは分けましょう。

server {
    listen 80;
    server_name  example.org;
    return 301 http://www.example.org$request_uri;
}

server {
    listen 80;
    server_name  www.example.org;
    ...
}