nginx:location指令中的正则表达式

时间:2023-03-10 06:48:50
nginx:location指令中的正则表达式

nginx:location指令中的正则表达式

uri匹配步骤

官网说明https://docs.nginx.com/nginx/admin-guide/web-server/web-server/

  1. 测试所有的前缀字符串
  2. 如果匹配到=后的字符串,则使用这个location;
  3. 如果最长的前缀字符串前有^~标记,则使用这个location;
  4. 存储最长前缀字符串的location;
  5. 测试正则表达式;
  6. 如果匹配,则使用这个location;
  7. 如果没有匹配,则使用最长前缀字符串的location。

更改uri

location /users/ {
rewrite ^/users/(.*)$ /show?user=$1 break;
}

这里$1表示正则表达式.*匹配到的对象;

location语法

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

=精确匹配,~正则匹配,~*不区分大小写的正则匹配,^~如果匹配到则使用(不再查找正则表达式是否匹配)