taiyoh's memorandum

@ttaiyoh が、技術ネタで気づいたことを書き溜めておきます。

nginxで同じパスでPCとSPのページ出し分け(簡易版)

 今更ながら、nginxにmapという機能があることを知った。
 → HttpMapModule
 ということで、以下のことを試してみた。serverブロックの外側に以下のような記述を追加してみる(中に書くと怒られる)。

map $http_user_agent $myindex {
    default           /index.html;
    ~(iPhone|Android) /index_sp.html;
}

 んで、serverブロックの中のlocationの指定で

location / {
    root /path/to/document/root;
    index $myindex;
}

 って感じでindexの値をmapで指定した値に変えておくと、UserAgentに「iPhone」とか「Android」って入ってればindex_sp.htmlをインデックスファイルに、そうでなければindex.htmlをインデックスファイルにしてくれる。ifでずらずら書いてくやり方よりちょっと見やすくなるので良い感じかも。また、正規表現部分をもっと充実させれば、精度は上がっていくはず。