作者:潇潇雨621715 | 来源:互联网 | 2023-08-30 10:02
replacement:是重写URI的改写规定。当改写规定以"http:""https:"或"$scheme"结尾时,Nginx重写该语句后将进行执行后续工作,并将改写后的URI跳转返
nginx rewrite语法
rewrite regex replacement [flag];
Modifier为location的修饰语,定义URI的匹配规定。pattern 为匹配项,能够是字符串或正则表达式
-
没有修饰符: 从指定模式开始,只反对字符串
location /abc{
root text;
}
上面规定都匹配:
http://localhost/abc/sdssd
http://localhost/abc?page=1&s…
http://localhost/abcd
http://localhost/abc/
上面都匹配
http://localhost/test
http://localhost/test?page=1&…
不匹配
http://localhost/test2ds
http://localhost/test/
-
~
: 辨别大小写的正则匹配
location ~ /abc$ {
root text;
}
上面都匹配
http://localhost/abc
http://localhost/abc?p=123
不匹配
http://localhost/abc/
http://localhost/ABC
http://localhost/abc/bbd
-
~*
: 不辨别大小的正则匹配
location ~* /abc$ {
root text;
}
上面都匹配
http://localhost/abc
http://localhsot/ABC
http://localhost/abc?p=123
不匹配
http://localhost/abc/
http://localhost/abc/bbd
匹配程序
- 先检测匹配项的内容为非正则表达式修饰语的 location,而后再检测匹配项的内容为正则表达式修饰语的 location。
- 匹配项的内容为正则与非正则都匹配的 location,依照匹配项的内容为正则匹配的 location 执行。
- 所有匹配项的内容均为非正则表达式的 location,依照匹配项的内容齐全匹配的内容长短进行匹配,即匹配内容多的 location 被执行。
- 所有匹配项的内容均为正则表达式的 location,依照书写的先后顺序进行匹配,匹配后就执行,不再做后续检测。
https://www.w3schools.cn/ngin…