rewrite可以改下请求的url,改写后可以以重定向的方式返回给调用方, 也可以继续匹配location,这些不同的行为是通过指令最后的flag来区分的
以下不同的rewrite规则下,访问 /first/file.txt 分别返回什么?
location /first {
rewrite /first(.*) /second$1;
return 200 "first!";
}
location /second {
return 200 "second!";
}
返回 "first!",因为flag为空的时候,会继续执行后面return指令
location /first {
rewrite /first(.*) /second$1 break;
return 200 "first!";
}
location /second {
return 200 "second!";
}
返回 second目录下的file.txt文件,因为break后就不再匹配,而是去root目录下匹配文件
location /first {
rewrite /first(.*) /second$1 last;
return 200 "first!";
}
location /second {
return 200 "second!";
}
返回 "second!",因为last使用改写后的url重新匹配,这个时候就会匹配到 location /second