[Nginx] www 付きの URL を www 無しにリダイレクトさせる設定方法

Nginx で、www 付きの URL を www 無しにリダイレクトさせる設定方法をご紹介します。

Nginx

下記の設定は、www.codenote.net にアクセスがきたら、codenote.net へリダイレクトさせます。

server {
    listen 80;
    server_name www.codenote.net;
    rewrite ^ http://codenote.net$request_uri? permanent;
}

www付きURLは今後もずっと、www無しURLにリダイレクトさせるので、最後のリダイレクトフラグを permanent にしています。

リダイレクトフラグについては色々と種類があるので、状況に応じて設定を変更してみて下さい。

最後のリダイレクトフラグに何を指定するかで、HTTPのステータス番号も変わってきます。

・last
rewriteは完了で、以降のマッチするURI や locationの処理は継続します。

・break
rewriteは完了です。

・redirect
一時的なリダイレクトの意味で使います。このとき、HTTP ステータス番号 302 を返して、リダイレクトを実行します。

・permanent
恒久的なリダイレクトの意味で使います。このとき、HTTP ステータス番号 301 を返して、リダイレクトを実行します。

引用元: apache のかわりにnginxを使ってみる(4) nginx でリダイレクト ( rewrite ) するには | レンタルサーバー・自宅サーバー設定・構築のヒント

以上です。

参考情報