nginx 的路径匹配
= 精确匹配, 后面是文件名, 不能是文件夹 /image 精确匹配, 后面是文件夹, 如果这个匹配到了, 还可能会被正则替换掉 ^~ image 精确匹配, 后面是文件夹, 如果这个匹配到了, 不会继续匹配正则 ~ image 正则 ~* image 正则, 不区分大小写
匹配规则:
- 普通命中匹配命中最长的
location / { ... } location /image { ... }
- 正则表达式一旦匹配到就不会再匹配, 因此第二条永远不会被匹配
location ~ im { root html1; }
location ~ image { root html2; }
访问 http://xxx/image/index.html 会到 html1 文件夹里面去寻找
- 先匹配 /image, 然后再匹配 ~ image, 因此 /image 的规则会被替换掉
location ~ image { root html1; } location /image { root html2; }
访问 http://xxx/image/index.html 会到 html1 文件夹里面去寻找
- ^~ 匹配到之后就不会继续匹配正则
location ^~ image { root html1; } location /image { root html2; }
访问 http://xxx/image/index.html 会到 html1 文件夹里面去寻找