location指令的作用是根据用户请求的URI来执行不同的应用。也就是根据用户请求的URI进行匹配,匹配成功即进行相关的操作
location [=|~|~*|^~] uri {
…
}
~:用于区分大小写的匹配(大小写敏感)
~*:用于不区分大小写的匹配。
!:可以用逻辑操作符“!”对上面的匹配取反,即“!~”、“!~*”
^~:进行常规的字符串匹配检查后不做正则表达式的检查。
不同匹配标识符的优先级
优先级 | 标识符 | 匹配说明 |
---|---|---|
1 | location = / { | 精确匹配 / |
2 | location ^~ /images/ { | 匹配常规字符串,不做正则匹配检查 |
3 | location ~* .(gif jpg jpeg)$ { | 正则匹配 |
4 | location /documents/ { | 匹配常规字符串,如果有正则,优先匹配正则 |
5 | location / { | 所有location都不能匹配后的默认匹配 |
regex常用的正则表达式
- \ 将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用。如,“\n”匹配一个换行符,“\”和“$”匹配“$”
- ^ 匹配输入字符串的起始位置,
- $ 匹配输入字符串的结束位置
- 匹配前面的字符零次或多次
- 匹配前面的字符一次或多次
- ? 匹配前面的字符零次或一次
- (pattern) 保留或作为一个整体。匹配括号内的pattern,并可以在后面获取相应的匹配。常用$0...$9属性获取小括号中匹配的内容
评论