nginx配置系列(八)rewrite重写模块(ngx_http_rewrite_module)

ngx_http_rewrite_module 模块

rewrite 的主要功能是实现对URL地址的重定向。 nginx 的 rewrite 功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译 nginx 就会支持 rewrite 的模块,但是也必须要PCRE的支持。

使用场景:

①、可以调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求。


②、为了让搜索引擎搜录网站内容及用户体验更好,企业会将动态URL地址伪装成静态URL地址提供服务。


③、网址换新的域名后,让访问旧的域名跳转到新的域名上。例如:访问京东以前的域名 www.360buy.com  会跳转到 www.jd.com 


④、根据特殊变量、目录、客户端的信息进行URL调整等

Rewrite语法

语法:rewrite regex replacement [flag];

默认值:—

上下文:server、location、if


rewrite 是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到 replacement,结尾是flag标记。


正则:perl兼容正则表达式语句进行规则匹配

替换内容:将正则匹配的内容替换成 replacement

flag标记:rewrite支持的flag标记


flag标记说明:

①、last:本条规则匹配完成后,继续向下匹配新的location,URI规则结束当前的请求处理,用替换后的URI重新匹配location。可理解为重写(rewrite)后,发起了一个新请求,进入server模块,匹配location。如果重新匹配循环的次数超过10次,nginx会返回500错误。不建议在location中使用。


②、break:本条规则匹配完成即终止,不再匹配后面的任何规则结束当前的请求处理,使用当前资源,不在执行location里余下的语句。建议在location中使用。


③、redirect:返回302临时重定向,浏览器地址会显示跳转后的URL地址。


④、permanent:返回301永久重定向,浏览器地址栏会显示跳转后的URL地址。


rewrite_log 开启或关闭rewrite模块指令的处理日志

语法:rewrite_log on | off;

默认值:rewrite_log off;

配置上下文:http、server、location、if

描述:开启或者关闭将ngx_http_rewrite_module模块指令的处理日志以notice级别记录到错误日志中。


备注:

rewrite模块一般都会配合if、return指令等一起使用。if、return指令的介绍及使用可点击:nginx配置系列(六)if和return以及set指令



到底是怎样的终点  才能配得上这一路的颠沛流离



声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与