location的语法

前言

本篇主要讲解nginx中的location的语法。

location的作用

location主要用于URI的匹配。

URI:Uniform Resource Identifier,统一资源标识符;如下图的data.html;
URN:Uniform Resource Name,统一资源名称,如下图的ste.org/img.png,比URI多个域名;
URL:Uniform Resource Locator,统一资源定位符,如下面,URL包含了http协议、端口、域名、文件名。

在这里插入图片描述

location位置

location只能位于server、location里面,也就是说location可以嵌套。

location的常用语法格式

1、精确匹配

location = / {
							#规则
		}

匹配到http://www.baidu.com/  这种请求

2、~ 大小写敏感

location ~ /example/ {
							#规则
	}

请求实例:
http://www.baidu.com/example/			[成功]
http://www.baidu.com/Example/			[失败]

3、~* 大小写不敏感,忽略大小写敏感

location ~*  /example/ {
							#规则
	}

请求实例:
http://www.baidu.com/example/			[成功]
http://www.baidu.com/Example/			[成功]

4、^~ 只匹配以uri开头

location ^~  /img/ {
							#规则
	}

请求实例:
以/img/开头的请求都匹配的上
http://www.baidu.com/img/index.html			[成功]
http://www.baidu.com/img/a.html				[成功]
http://www.baidu.com/Img/index.html			[失败]
http://www.baidu.com/hmg/index.html			[失败]

5、/ 通用匹配,即默认匹配

location / {
							#规则
		}
以上都不匹配的时候就会匹配该默认匹配

location的匹配顺序:首先匹配 =,其次匹配^~,其次是按文件中顺序的正则匹配,最后是交给 /通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

演示示例:

location = / {
xxxxxxxx
}
location ~ \.html$ {		#表示区分大小写匹配.html结尾的,但.在正则表达式会被转译。所以需要加斜杠\,而$符号表示以什么什么结尾的
xxxxxxxx
}
location ~* \.(gif|jpg|jpeg)$ {				#表示匹配不区分大小写以gif|jpg|jpeg结尾的
 # matches any request ending in gif, jpg, or jpeg. However, all
}

 

location 的内部跳转匹配符号@

location /img/ {
error_page 404 = @error_img;				#匹配进来发现状态码是404则跳转到error_img这一条规则
}
location @error_img {						#跳转到这里
xxxxxx
}
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值