root PATH #设置请求 URL 所对应资源所在文件系统上的根目录 location [ = | ~ | ~* | ^~ ] URI { … } #设置一个 URI 匹配路径 =:精确匹配 ~:正则表达式匹配,区分字符大小写 ~*:正则表达式匹配,不区分字符大小写 ^~:URI 的前半部分匹配,且不实用正则表达式 优先级: = > location 完整路径 > ^...
但是replacement中的$字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。 2.2、正则匹配重写例子 参数匹配,互换位置 代码语言:javascript 复制 name="Tom, Jerry";name.replace(/(\w+)\s*, \s*(\w+)/,"$2 $1");'Jerry Tom' 参数获取 代码语言:javascript 复制 varstr='/pgk/api...
若 location /abc,则即匹配/abc 、/abcd/ 同时也匹配 /abc/。 (2)location / {} 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 比如访问 / 和 /data, 则 / 匹配, /data 也匹配, 但若后面是正则表达式会和最长字符串优先匹配(最长匹配),比如 /a/b/c/d, 匹配 /a/b/c 优先大于 /a/...
再比如 location = /abc,则只匹配/abc ,/abc/或 /abcd不匹配。若 location /abc,则即匹配/abc 、/abcd/ 同时也匹配 /abc/。 (2)location / {} 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 比如访问 / 和 /data, 则 / 匹配, /data 也匹配, 但若后面是正则表达式会和最长字符串优先...
1.last 相当于apache里面的[L]标记,表示rewrite。 2.break本条规则匹配完成后,终止匹配,不再匹配后面的规则。 3.redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址。 4.permanent 返回301永久重定向,浏览器地址会显示跳转后的URL地址。 使用last和break实现URI重写,浏览器地址栏不变。而且两者有细微差别...
replacement可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是replacement中的$字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。 2.2、正则匹配重写例子 参数匹配,互换位置 name="Tom, Jerry";name.replace(/(\w+)\s*, \s*(\w+)/,"$2 $1");'Jerry...
$1|$2|$3 ...是nginx在匹配正则时生成的变量,用于捕获一个正则表达式括号中匹配的字符串(从左到右依次存储在$1|$2|$3 ...中),新值覆盖旧值。 location块中未设置root时,会取外层(server块)的root,但server.root明显不是先生成字符串然后赋值给location.root,而是直接把模板串交给location.root。
一.正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行...
1、常用的nginx正则表达式 ^:匹配输入字符串的起始位置$ :匹配输入字符串的结束位置* :匹配前面的字符零次或多次。如"ol*"能匹配"o"及"ol"、"oll"”+:匹配前面的字符一次或多次。如"ol+"能匹配"ol"及"oll"、"olll",但不能匹配"o"?:匹配前面...
1:=前缀的指令严格匹配这个查询;如果找到停止往下匹配 2:挣下的常规字符串,长的在前,如果这个匹配使用^~前缀,匹配停止; 3:正则表达式,按配置文件的顺序; 4:如果第三步产生匹配。则使用这个结果;停止匹配;否则使用第二部的匹配结果; 四个案例: location = / { ...