目录
一、重写功能
1、重写功能作用
重写功能(rewrite)用于实现URL的重写,URL的重写是非常有用的功能,比如它可以在我们改变网站结构之后,不需要客户端修改原来的书签,也无需其他网站修改我们的链接,就可以设置为访问,另外还可以在一定程度上提高网站的安全性。
2、rewrite指令
①if指令
用于条件匹配判断,并根据条件判断结果选择不同的Nginx配置,可以配置在server或location块中进行配置,Nginx的if语法仅能使用if做单次判断可以在server模块和location模块,不支持使用if else或者if elif这样的多重判断,用法如下:
if ( [连接符] 条件匹配 ){
执行动作;
}
条件匹配连接符:
= 比较变量和字符串是否相等,相等为true。
!= 比较变量和字符串是否不相等,不相等为true。
~ 区分大小写,判断字符是否匹配,匹配为true。
~* 不区分大小写,判断字符是否匹配,匹配为true。
-f 和 !-f #判断请求的文件是否存在和是否不存在。
-d 和 !-d #判断请求的目录是否存在和是否不存在。
-x 和 !-x #判断文件是否可执行和是否不可执行。
-e 和 !-e #判断请求的文件或目录是否存在和是否不存在(包括文件,目录,软链接) 。
举例:
location /main {
index index.html;
default_type text/html;
#定义文件类型
if ( $scheme = http ){
#如果用户访问的协议是http,$scheme变量表示用户来访问使用的协议。
echo "if-----> $scheme";
#则输出if --->协议
}
if ( $scheme = https ){
#如果用户访问的协议是https,$scheme变量表示用户来访问使用的协议。
echo "if ----> $scheme";
#则输出if --->协议
}
②return指令