功能
根据用户请求的URI来提供不同的访问,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。
语法
location [= | ~ |~* |^~] uri {具体内容}
指令 匹配标识 uri 具体匹配操作
匹配规则
" = " 优先级最高,提供精准匹配
" ~ 和~* " 同级别,前者区分大小写,后者不区分大小写 也可以用!取反 正则匹配
" ^~ " 意思是匹配之后不做正则表达式检查,做了正则也没用
" @ " 定义一个命名的 location,使用在内部定向时,例如 error_page
优先级
(location = uri ) > (location ^~ uri) > (location *~|~ uri) > (location uri)
注:所以同时正则匹配时
•放在前面的优先匹配
•注意如果不区分大小写时,使用 ~*
•尽量将精确匹配的放在前面
常见的location匹配规则
location /index.php #匹配以/index.php开头的URI
location = /a { #精准匹配以a开头的数据,优先级最好
[ configuration A ]
}
location /a { #匹配以a开头的aui
[ configuration B ]
}
location /documents/ { #匹配包含/.../的rui
[ configuration C ]
}
location ^~ /images/ { #匹配以/images/开头的数据,后面不接正则
[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ { #匹配以()里面的东东结尾的rui.不区分大小写
[ configuration E ]
}