nginx的location与rewrite

[b]location有定位的意思,根据uri来进行不同定位[/b]
语法:
location [=|~|~*|^~] patt { //中括号可以不写参数,大致分为三类
}

location = patt {} //精准匹配
location patt {} //普通匹配
location ~ patt{} //正则匹配

一个server里面可以有多个location,其匹配过程如下:
1.先判断精准匹配,如果命中,立即返回;

2.再判断普通匹配,如果有一个,记录当前匹配,如果有多个,记录“最长”匹配;(只记录,暂时不返回);

3.最后判断正则表达式匹配,以配置文件由上到下的顺序,一旦匹配,立即返回当前匹配结果,并结束匹配,如果没有匹配上,则返回普通匹配的结果

[color=red]注:普通匹配与在配置文件的顺序无关,正则匹配与在配置文件里面的顺序有关;
?当第一次匹配成功以后,uri里面的里面路径换成匹配结果后,还会到配置文件中继续匹配?[/color]
location / { //匹配uri中的"/"
}

[b]rewrite 重写,主要用在server 和 location中[/b]
语法:
if 空格 (条件) {} //设定条件,在进行重写
set //设置变量
return //返回状态码
break //跳出rewrite
rewrite //重写

条件有3中写法:
1.“=”判断相等,用于字符串比较
2.“~”正则表达式匹配,区分大小写;加上星号(“~*”)不区分大小写
3.-f -d -e 判断是否为文件,为目录,是否存在

例子:
if ($request_method=POST) {
return 405;
}

if ($http_user_agent ~ MSIE) {
rewrite ^.*$ /ie.html;
break;
}

if (!-e $fastigc_script_name) {
return 403;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值