Nginx Rewrite 详解
文章目录
一、Rewrite基本介绍
1.什么是Rewrite
Rewrite及URL重写,主要是实现地址重写,以及重定向,就是把输入Web的请求重定向到其他URL的过程
2.Rewrite应用场景
- 地址跳转: 用户访问old.com时,将其跳转到oldboy.com。
- 协议跳转:将用户通过http的请求协议重新跳转至https协议(实现https主要手段)。
- URL静态化: 将动态URL地址显示为静态URL的一种技术,能提高搜索引擎抓取,并且能减少动态URL对外暴露过多的参数。
3.Rewrite原理
4.Rewrite语法格式
语法:
rewrite <regex> <replacement> [flag];
- regex :表示正则匹配规则。
- replacement :表示跳转后的内容。
- flag :表示 rewrite 支持的 flag 标记。
例1:
rewrite ^/images/(.*\.jpg)$ /imgs/$1 break; //此处的$1用于引用(.*.jpg)匹配到的内容
例2:
rewrite ^/bbs/(.*)$ http://www.idfsoft.com/index.html redirect;
如上例所示,replacement可以是某个路径,也可以是某个URL
5.flag标记说明
flag | 作用 |
---|---|
last | 基本上都用这个flag,表示当前的匹配结束,继续下一个匹配,最多匹配10个到20个 一旦此rewrite规则重写完成后,就不再被后面其它的rewrite规则进行处理 而是由UserAgent重新对重写后的URL再一次发起请求,并从头开始执行类似的过程 |
break | 中止Rewrite,不再继续匹配 一旦此rewrite规则重写完成后,由UserAgent对新的URL重新发起请求, 且不再会被当前location内的任何rewrite规则所检查 |
redirect | 以临时重定向的HTTP状态302返回新的URL |