0
点赞
收藏
分享

微信扫一扫

nginx location正则匹配[=|~|~*|^~] /uri/ { … }的使用 以及转发


location

= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
~ 为区分大小写匹配(可用正则表达式)
~* 为不区分大小写匹配(可用正则表达式)
!~为区分大小写不匹配
!~*为不区分大小写不匹配
^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。

另外^$等符号也是可以用的。

location = / {
# 只匹配 /
}

location / {
# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
}

location ^~ /output/ {
# 匹配任何已 /output/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
}

location ~*.(jpg|jpeg)$ {
# 匹配任何以 jpg 或 jpeg 结尾的请求。
}

location ~*.(gif|jpg|swf)$ {
valid_referers none blocked start.igrow.cn sta.igrow.cn;
if ($invalid_referer) {
#防盗链
rewrite ^/ http://$host/logo.png;
}
}

实际转发地址

location只是匹配。如果用到代理,转发地址不但和location有关,还和proxy_pass代理的地址有关。
这一块稍复杂,待详述。


举报

相关推荐

0 条评论