例如,请求的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.
1 回答
弑天下
TA贡献1818条经验 获得超8个赞
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; }
- 1 回答
- 0 关注
- 139 浏览
添加回答
举报
0/150
提交
取消