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。
