nginxでスマホからのアクセスをリダイレクト
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の使い方なども載っていて、参考になります。- HOWTO: redirect iPhone/iPod users on nginx – iandouglas.com
- apache のかわりにnginxを使ってみる(4) nginx でリダイレクトするには | レンタルサーバー・自宅サーバー設定・構築のヒント
Tags: android, iphone, nginx
Twitter:
facebook:
flickr: 