我有这个网址:
http://127.0.0.1:8085/test2/Y2hpc3Rh?sx=MTU5OQ==&sy=MTk4&sz=MTg=
我希望将其重写为:
/tms/$1/$2/$3/$4.png;
我有这个正则表达式:
rewrite /[\w]+/([\w\d]*)?[\w]+[\w]+=([\w\d=]*) /tms/$1/$2.png;
它应该像:/tms/Y2hpc3Rh/MTU5OQ.png
一样工作,但事实并非如此。 Nginx找不到这些组。这有什么问题?
答案 0 :(得分:3)
试试这个:
rewrite ^/\w+/(\w*)/?$ /tms/$1/$arg_sx/$arg_sy/$arg_sz.png;
Nginx在rewrite
的匹配项中不包含查询字符串。您可以通过$arg_name
按名称访问参数。
\w
相当于[A-Za-z0-9_]
,因此它包含数字。
答案 1 :(得分:0)
未测试
http://[^/]+/[^/]+/([^?]+)[^=]+=([^=]+)=.*
/tms/$1/$2.png