Nginx location语法配置详解 location的意思 $location location重定
程序员文章站
2022-05-21 14:05:19
...
location 有“定位”的意思,可以根据URI来进行不同的的定位
在虚拟主机的配置中,是必不可少的,location,他可以把网站的不同部分,定位到不同的处理方式上
location 的语法
location [=|~|~*|^~] patt {
}
location 语句大致可以分为三种location = demo {} 【精准匹配】
location demo {} 【普通匹配】
location ~ demo {} 【正则匹配】
在这三种匹配中精准优先匹配,如果精准匹配成功,则停止匹配过程
location = / { # 精确匹配 / ,主机名后面不能带任何字符串 config A } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 config B } location ~ image { # 匹配任何以 /iamge/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条 config C } location /foo { # 字符匹配到 /foo,继续往下 config D }
-
=
开头表示精确匹配
如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。 - ~ 开头表示区分大小写的正则匹配;
- ~* 开头表示不区分大小写的正则匹配
- / 通用匹配, 如果没有其它匹配,任何请求都会匹配到
- / -> config A
精确完全匹配 - /image/logo.png -> config C
匹配B以后,往下没有任何匹配,采用C - /foo -> config D
匹配到F,往下匹配到D,停止往下 - /abc/def -> config B
匹配规则B
- / -> config A
-
rewrite 重写
重写中用到的指令
if (条件) {} 设定条件,再进行重写
set #设置变量
return #返回状态码
break #跳出rewrite
rewrite #重写
If 语法格式
If 空格 (条件) {
重写模式
}
条件又怎么写?
答:3种写法
1: “=”来判断相等, 用于字符串比较
2: “~” 用正则来匹配(此处的正则区分大小写)
~* 不区分大小写的正则
3: -f -d -e来判断是否为文件,为目录,是否存在.
以上就介绍了Nginx location语法配置详解,包括了location,nginx方面的内容,希望对PHP教程有兴趣的朋友有所帮助。