网上翻了很多教程,发现一大堆都是直接抄的别人的,很多都没有说清楚,搞得越看越糊涂。
本文参考 https://www.cnblogs.com/dadonggg/p/7797281.html
https://www.cnblogs.com/duhuo/p/8323812.html
location 【选项】 <正则> path
选项有如下几种:
1.以 = 开头,表示精确匹配;如只匹配根目录结尾的请求,后面不能带任何字符串。
location = /login {
#root html/aaa; #使用tomcat.com/login登陆 会找到我们的 /html/aaa/login ;
#tomcat.com/login1 不行,地址栏不改变
root html;
#rewrite ^/(.*) http://www.baidu.com; # 跳转到新的网址上,重定向,地址改变
#alias html/aaa/; #使用/html/aaa替代 login
index index.html index.htm;
}
2.以^~ 开头,表示uri以某个常规字符串开头。
location ^~ /static/ {
root html; #/static/a.html ===》/html/static/a.html
#请求必须是static开头且只能在/static/以后加东西
#在该页面中 sta/新建位图图像.bmp =====》html/static/sta/新建位图图像.bmp"
#alias html/; #只会替代我们的static,不会替代static之后的东西
index index.html index.htm;
}
3.以~ 开头,表示区分大小写的正则匹配;
4.以~* 开头,表示不区分大小写的正则匹配
5.以/ 开头,通用匹配, 如果没有其它匹配,任何请求都会匹配到
当使用3和4的时候启用正则。
正则表达式参考 http://www.runoob.com/regexp/regexp-syntax.html