为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

潇湘沐 2023-04-14 13:09:27
例如,请求的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条经验 获得超7个赞

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;
}


查看完整回答
反对 回复 2023-04-17
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信