れみゅーぶろぐ

某(元)高専生が多彩なジャンルにわたって書くブログ。非常に真面目なブログであると自負しております(要出典)。Twitter:@_remew_

nginxでGETパラメータによって表示するコンテンツを変える

URLの最後に「?lang=en」ってやったら英語になるサイト、かっこいい

 そう思ってnginxでGETパラメータによって表示するコンテンツを変える方法を調べました。

 

$arg_hogeという変数の中身は、GETパラメータとして「?hoge=yo」が与えられたとき、「yo」という文字列になるらしいです。

なので、nginxの.confファイルのlocationディレクティブのなかで次のような感じで変えられる。

location / {

    if ($arg_lang) {

        root /usr/share/nginx/html/$arg_lang;

    }

    root /usr/share/nginx/html;

}

 

まぁこれやると、「?lang=hogehoge」のときにhogehogeが存在しなかったら404になるんですけどね。

なので次のようにした方がいいかもしれない?

location / {

    if ($arg_lang = "en") {

        root /usr/share/nginx/html/en;

    }

    root /usr/share/nginx/html;

}

 

関係ないんですけど、はてなブログソースコード書くとき毎回「引用」を使ってるんですけどこれやめたほうがいいんですかね。

もっといい方法が知りたいマンです。

 

以下参考ページ

nginxのproxy_cache_keyとかでGETパラメータを上手いことやるやつ - misodengakuのブログ

HttpCoreModule - Nginx Community