你好,请问在nginx中如何实现这种除法的操作?

例如,请求的url是

photos/100000_0_9-.jpg

我想要计算取出100000这个数字,对其进行除法操作

location ~ /photos/([0-9]+)_0_([0-9]+)-.jpg$ {    root '/home/images';    set $id $1/10000;    set $version $2;    rewrite /photos/([0-9]+)_0_([0-9]+)-.jpg$ /$id/$version/$1_0_$2-.jpg;
}

然后重写到该id对应的目录,但是这样操作的话,id的值会变成100000/10000,而不是10.


潇湘沐
浏览 98回答 1
1回答

弑天下

Nginx配置文件里似乎是不支持数据学运算的,可以使用agentzh编写的HttpLuaModule。location ~ /photos/([0-9]+)_0_([0-9]+)-.jpg$ {    root '/home/images';    set $id $1;    set $version $2;    set_by_lua $id                "return math.floor(tonumber(ngx.arg[1])/10000)"                 $id;    rewrite /photos/([0-9]+)_0_([0-9]+)-.jpg$ /$id/$version/$1_0_$2-.jpg; }
打开App,查看更多内容
随时随地看视频慕课网APP