Nginx Location 正则表达式

2017-10-12  本文已影响0人  Leebor

部分内容摘抄自 Nginx官网

Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
Default:
Context: server, location

1. 等号(=)

表示完全匹配规则才执行操作

location = /index {
    [ configuration A ]    
}

URL为 http://{domain_name}/index 时,才会执行配置中操作。

2. 波浪号(~)

表示执行正则匹配,但区分大小写

location ~ /page/\d{1,2} {
    [ configuration B ]
}

URL 为 http://{domain_name}/page/1 匹配结尾数字为1-99时,配置生效。

3.波浪号与星号(~*)

表示执行正则匹配,但 区分大小写

location ~* /\.(jpg|jpeg|gif) {
    [ configuration C ]
}

匹配所有url以jpg、jpeg、gif结尾时,配置生效。

4.脱字符与波浪号(^~)

表示普通字符匹配,前缀匹配有效,配置生效
location ^~ /images/ {
[ cofigurations D ]
}
URL 为 http://{domain_name}/images/1.gif 时,配置生效。

5.@

定义一个location,用于处理内部重定向

location @error {
    proxy_pass http://error;
}

error_page 404 @error;

各字符有效优先级

= > ^~ > ~/~*
(~/~*)中有多个正则匹配时,选择正则表达式最长的配置执行。

上一篇下一篇

猜你喜欢

热点阅读