nginxでブラウザ判別

nginxでブラウザを判別する方法を書きます。

例としてIE8以下でアクセスした場合、別URLにリダイレクトさせる設定を示します。

modern_browser  unlisted;
ancient_browser "MSIE 4.0" "MSIE 5.0" "MSIE 5.5" "MSIE 6.0" "MSIE 7.0" "MSIE 8.0";

location / {
    if ( $ancient_browser ) {
        rewrite ^ http://kojinbaibai.bundlebox.jp/nosupport/ last;
        break;
    }

    ....
}    

これだけです。

ancient_browser

に特殊処理するブラウザを入れます。

if ( $ancient_browser ) {}

とすることで、そのブラウザでアクセスしてきた場合の処理を分岐できます。

試しに、http://kojinbaibai.bundlebox.jp/にIE8以下でアクセスしてみてください。
/nosupport/以下にリダイレクトされると思います。


例見てもらえると分かるかもしてませんが、個人売買掲示板はIE8以下にはサービスを対応させていません。
HTML5が当たり前になる昨今、IE8以下の人はもうバージョンアップまたは他のブラウザにしませんか?
と思ったけど、
日本のバージョン別ブラウザシェアグラフ (StatCounter Global Statsより)
ここ見る限り、IE8のシェアって結構あるんですね。

ハイパフォーマンスHTTPサーバ Nginx入門

ハイパフォーマンスHTTPサーバ Nginx入門

広告を非表示にする