nginxでiPhoneやAndroidからのアクセスをリダイレクトする方法のメモ。

Apacheなら.htaccessなどを使ってリダイレクトしますが、nginxだとちょっと違います。
/etc/nginx/sites-available/ にある設定から行います。

$vi /etc/nginx/sites-available/example.com
以下のように、rewriteを使ってリダイレクトします。
server {
    listen 80;      
    server_name example.com;
    access_log  /var/log/nginx/example.com.access.log;
    error_log  /var/log/nginx/example.com.error.log;

    (中略)
    # スマホからのトップページへのアクセスを、/mobile にリダイレクト
    if ($http_user_agent ~* “2.0\ 2MMP|240×320|400X240|BlackBerry|Cellphone|Googlebot-Mobile|Opera\ Mini|iPhone|iPod|Android|BlackBerry9530|Nokia5800″) {
           rewrite ^/$ /mobile last;
    }
}

スマホ判定の部分は、どこかから持ってきたやつを適当にいじっただけなので、よく分からない端末名も入ってます。

if 文は、ifのあとにスペースがないとダメみたいなので注意。

if (      #OK
if(       #NG

あと、以下も注意。

参考にしたサイト

2つめのサイトでは、rewriteのflagの使い方なども載っていて、参考になります。