Nginx Rewrite功能浅谈
1 什么是nginx rewrite
和Apache等web服务软件一样,Nginx Rewrite的主要功能也是实现URL地址重写,Nginx的Rewrite规则需要PCRE软件的支持,即通过Perl兼容正则表达式语法进行规则匹配。前文在按照nginx软件时就已经安装了PCRE软件。
2 Nginx Rewrite语法
【1】 rewrite指令语法
指令语法:rewrite regex replacement {flag}
默认值 :none
应用位置:server 、location、if
rewrite 是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement部分内容,结尾是 flag标记。
举例:
rewrite ^/(.*) http://www.sleep.com/$1 permanent
在上述指令中,rewrite为固定关键字,表示开启一条rewrite匹配规则,regex部分是^/(.*),这是一个正则表达式, 匹配所有,匹配成功后跳转到http://www.sleep.com/$1,这里$1是取前面regex部分()里的内容,结尾permanent; 表示 301 永久重定向,即跳转到http://www.sleep.com/$1地址上
举例:
按下回车后,页面自动跳转到www.sleep.com/rewrite/
附录:regex 常用正则表示式字符
rewrite 指令结尾最后一项参数flag标记的说明
last 本条规则匹配完成后,继续向下匹配新的locationURI规则
break 本条规则匹配完成即终止,不再匹配后面的任何规则;
redirect 返回302临时重定向,浏览器地址栏会显示跳转后的URL地址
permanent 返回301永久重定向 浏览器地址栏会显示跳转后的URL地址
Nginx rewrite的企业应用场景
* 可以调整用户的URL,看起来更规范,合乎开发及产品人员的需求
* 为了让搜索引擎收录网站内容及用户体验更好,企业会将动态URL地址伪装成静态地址提供服务
* 网站更换新域名后,让旧的域名的访问跳转到新的域名商上
* 根据特殊变量,目录,客户端的信息进行URL跳转