nginx:location指令中的正则表达式
nginx:location指令中的正则表达式
uri匹配步骤
官网说明https://docs.nginx.com/nginx/admin-guide/web-server/web-server/
- 测试所有的前缀字符串
- 如果匹配到=后的字符串,则使用这个location;
- 如果最长的前缀字符串前有^~标记,则使用这个location;
- 存储最长前缀字符串的location;
- 测试正则表达式;
- 如果匹配,则使用这个location;
- 如果没有匹配,则使用最长前缀字符串的location。
更改uri
location /users/ {
rewrite ^/users/(.*)$ /show?user=$1 break;
}
这里$1表示正则表达式.*匹配到的对象;
location语法
Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
Default: —
Context: server, location
=
精确匹配,~
正则匹配,~*
不区分大小写的正则匹配,^~
如果匹配到则使用(不再查找正则表达式是否匹配)