Heim > Fragen und Antworten > Hauptteil
Die angeforderte URL lautet beispielsweise
photos/100000_0_9-.jpg
Ich möchte die Zahl 100000 berechnen und dividieren
location ~ /photos/([0-9]+)_0_([0-9]+)-.jpg$ { root '/home/images'; set $id /10000; set $version ; rewrite /photos/([0-9]+)_0_([0-9]+)-.jpg$ /$id/$version/_0_-.jpg; }
Schreiben Sie dann in das Verzeichnis um, das der ID entspricht. Wenn Sie dies tun, beträgt der Wert der ID jedoch 100.000/10.000 statt 10.
Wie implementiert man diese Divisionsoperation in Nginx?
伊谢尔伦2017-05-16 17:32:00
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; }
也可以字节写个简单的数学运算扩展 https://github.com/arut/nginx-let-mod...。