mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Nginx - www 有無を統一!!

[ サーバ構築 ] [ Nginx ]

こんばんは。

軽量 Web サーバ Nginx で URL をリダイレクトさせる方法についての備忘録です。

Apache なら RewriteCondRewriteRule を使うところを Nginx ではどう記述すればよいのかということです。

“www” 付きの URL にも “www” 無しの URL にもそのままアクセスできるようになっているということは、 SEO 的にも効果が薄れます。
特に検索エンジンによるクロールで大きく影響がでます。"www" 付き URL と “www” 無し URL は別々の URL と判断されるので、"robots.txt", “sitemap.xml” を設定していても効果が弱いということです。(Apache でも Nginx 等でも同じ)

実際には色々と設定できますが、今回は “www” なしの URL を “www” 付きの URL に統一させる方法に限定してます。

0. 前提条件

  • Nginx のバージョンは 1.4.2 を想定
  • http://mk-mode.comhttp://www.mk-mode.com にリダイレクトすることを想定。

1. 設定ファイル編集

元々 mk-mode.comwww.mk-mode.com のどちらでもそれぞれにアクセスできるようにしていたものを、mk-mode.com にアクセスすると www.mk-mode.com にリダイレクトするように変更する。

/usr/local/nginx/conf/nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ===> 追加
server {
    listen       80;
    server_name  mk-mode.com;
    #rewrite   ^  http://www.mk-mode.com$request_uri? permanent;  # <= これでもよい
    rewrite ^(.*)$ http://www.mk-mode.com$1 permanet;
}
# <=== 追加

# 元の server ディレクティブ
server {
    listen       80;
    #server_name  mk-mode.com www.mk-mode.com;  # <= コメント化
    server_name  www.mk-mode.com;               # <= 追加
       :
}

ちなみに rewrite 行最後の

  • permanent は「恒久的なリダイレクト(HTTP ステータス:301)」
  • last は「一時的なリダイレクト(HTTP ステータス:302 を返してリダイレクト)」
  • redirect は「一時的なリダイレクト(即リダイレクト、HTTP ステータス:302を返す)」

という意味である。

2. Nginx リロード

1
2
3
4
# service nginx reload
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
nginx を再読み込み中:                                      [  OK  ]

3. 動作確認

ブラウザで www 無しの URL でアクセスし www 付きの URL にリダイレクトされることを確認する。

4. 参考サイト


別途、検索エンジンのウェブマスターツール(Google や Bing 等の大手)で、"www" の有無を統一するよう設定すれば、検索エンジンに適切にクロール・インデックス化されます。
その結果、サイトのアクセス数や広告の表示回数が大幅にアップします。

以上。

Comments