欢迎来到云服务器

服务器租用

Nginx中的rewrite指令(break,last,redirect,permanent)

rewite

在server块下,会优先执行rewrite部门,然后才会去匹配location块
server中的rewrite break和last没什么区别,城市去匹配location,,所以没须要用last再提倡新的请求,可以留空

location中的rewirte:

不写last和break - 那么流程就是依次执行这些rewrite
1. rewrite break - url重写后,直接利用当前资源,不再执行location里余下的语句,完本钱次请求,地点栏url稳定
2. rewrite last - url重写后,顿时提倡一个新的请求,再次进入server块,重试location匹配,高出10次匹配不到报500错误,地点栏url稳定
3. rewrite redirect – 返回302姑且重定向,地点栏显示重定向后的url,爬虫不会更新url(因为是姑且)
4. rewrite permanent – 返回301永久重定向, 地点栏显示重定向后的url,爬虫更新url

利用last会对server标签从头提倡请求

假如location中rewrite后是对静态资源的请求,不需要再举办其他匹配,一般要利用break或不写,直接利用当前location中的数据源,完本钱次请求
假如location中rewrite后,还需要举办其他处理惩罚,如动态fastcgi请求(.php,.jsp)等,要用last继承提倡新的请求
(根的location利用last较量好, 因为假如有.php等fastcgi请求还要继承处理惩罚)

利用alias指定源:必需利用last

if语句主要用来判定一些在rewrite语句中无法直接匹配的条件,好比检测文件存在与否,http header,cookie等

location匹配法则及优先级

= 严格匹配这个查询。假如找到,遏制搜索。

^~ 匹配路径的前缀,假如找到,遏制搜索。

~ 为区分巨细写的正则匹配

~* 为不区分巨细写匹配
优先级: =, ^~, ~/~*, 无

break语句

放在server块rewrite语句前面
假如是直接请求某个真实存在的文件,则用break语句遏制rewrite查抄
if (-f $request_filename) {
break;
}

腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号