nginx配置location(html location重定向)
匹配指定的请求uri(请求uri不包含查询字符串,如http://localhost:8080/test?id=10,请求uri是/test)
语法形式
location [ = | ~ | ~* | ^~ | @] /uri/ { configuration }
location = /uri =开头表示精确前缀匹配,只有完全匹配才能生效。
正常的情况匹配的原则:/usr/local/nginx/weizhaoyang/host1/tes/index.html
由于是精准匹配所以会当匹配到第一个/的时候就会找下面图中的路径:/usr/local/nginx/html/test/index.html
这就是去绝对的路径下去找有没有index.html,如果没有就404
因为是没有精准,那么怎么能才够定位到上面写的路径呢,按照下面的写法就可以定位到了,不会从下面去找/,这就是精准匹配。
location ^~ /uri ^~开头表示普通字符串匹配上以后不再进行正则匹配。
location ~ pattern ~开头表示区分大小写的正则匹配。
location ~* pattern ~*开头表示不区分大小写的正则匹配。
location /uri :不带任何修饰符,表示前缀匹配。(一般匹配,最长命中匹配)
location / : 通用匹配,任何未匹配到其他location的请求都会匹配到。
总结:
①、普通匹配是最长命中匹配
②、正则匹配会根据匹配顺序,找到第一个匹配的正则表达式后将停止搜索。普通字符串匹配则无视顺序,只会选择最精确的匹配, 正则表达式匹配不分长和短,只分先和后,谁先配置,谁先匹配,如果都匹配上了,就响应第一个为结果。