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。