last 停止rewrite检测【如果没有匹配到,会继续向下匹配】
break 停止rewrite检测【如果没有匹配到,则不再向下匹配,直接返回结果404】
redirect 返回302临时重定向,地址栏会显示跳转后的地址
permanent 返回301永久重定向,地址栏会显示跳转后的地址
server {
``listen 80 default_server;
``server_name www.test.com;
``access_log /``var``/log/nginx/log/host.access.log main;
``root /opt/app/code;
``location ~ ^/``break
{
``rewrite ^/``break
/test/ ``break``;
``}
``location ~ ^/last {
``rewrite ^/last /test/ last;
``}
``location /test/ {
``default_type application/json;
``return
200 ``'{"status":"success"}'``;
``}
}
访问test.com/test 返回正常200
访问test.com/last 也是返回正常200
访问test.com/break 返回404
可以发现访问 last 的时候新建立了一个请求 /test/ ,而访问/break/ 请求的时候 会去 /opt/app/code 下找相应的资源,没找到所以报错
server {
``listen 80 default_server;
``server_name www.zhangbiao.com;
``access_log /``var``/log/nginx/log/host.access.log main;
``root /opt/app/code;
``location ~ ^/imooc {
``rewrite ^/imooc http:``//www.imooc.com/ permanent;
``#rewrite ^/imooc [http://www.imooc.com/](http://www.imooc.com/) redirect;
``}
}
redirect 表示临时的重定向 ,只要后端服务是开者的。每次访问 /imoc 都会重定向到 http://www.imooc.com
permanent 表示永久重定向,第一次访问成功后,把后端服务关闭后,访问/imoc 仍然会重定向到 http://www.imooc.com
rewrite优先级规则
- 执行server 块的rewrite 指令。将所有的网站都重定向同一个网站。
- 执行location匹配。
- 执行选定的location中的rewrite。