一、关于rewrite
rewrite语法格式:
rewrite regex replacement [flag];
任何rewrite规则的第一部分都是一个正则表达式,正则表达式中使用圆括号定义的部分可以被位置变量引用,位置变量的值取决于在正则表达式中圆括号定义的顺序;
rewrite的第二部分是被重写后的URI,该URI可以包含位置变量引用第一部分圆括号中定义的内容。
像下面的规则:
rewrite ^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gif)$ /data?file=$3.$4 last;
- 第一组圆括号中,匹配由两个小写字母“a”至“z”组成的字符串,可以被位置变量“$1”引用;
- 第二组圆括号中,匹配由五个小写字母或数字组成的字符串,可以被位置变量“$2”引用;
- 第三组圆括号中,匹配可能是文件名前缀的部分,可以被位置变量“$3”引用;
- 第四组圆括号中,匹配可能是“png”或“jpg”或“gif”为后缀的文件,可以被位置变量“$4”引用。
二、关于flag的说明
- last:停止处理rewrite模块指令,并查找重写后的URI匹配的location;
- break:停止处理rewrite模块指令,并从文件系统中查找对应目录,目录不存在将返回404。如果找到对应文件,则返回重定向信息,并返回网页内容;
- permanent