- Rewrite重写用来做些什么
URL重写就是首先获得一个进入的URL请求,然后使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位把它重新写成网站可以处理的另一个URL的过程。rewrite只能放在配置文件的server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用。 - Rewrite执行顺序
1.执行server块的rewrite指令
2.执行location匹配
3.执行选定的location中的rewrite指令
4.执行if条件匹配
5.执行if块中的rewrite指令 - rewrite语法
关键字:其中关键字error_log不能改变
正则: perl兼容正则表达式语句进行规则匹配
替代内容:将正则匹配的内容替换成repl acement
filag标记: rewrite支持的fl ag标记
flag标记说明:
Last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL.地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL她址 - 指令详解
1.if指令
语法为if(condition){…}
condition常用判断条件:
-f和!-f用来判断请求文件是否存在
-d和!-d用来判断请求目录是否存在
-e和!-e用来判断是请求的文件或者目录否存在
-x和!-x用来判断请求的文件是否可执行
condition可用的nginx变量:
2.break指令
用于中断当前相同作用域中的Nginx配置,和Java中的break语法类似,可以在server块和location以及if块中使用。
3.return指令
该指令用于完成对请求的处理,直接向客户端响应状态的代码。和Java中的return语法类似。可以再server块和location以及if块中使用。
4.set指令
用来设置新的变量
语法: set variable value