【Nginx-Location-Root】最终访问的路径是 root/$uri
一、看配置文件代码
location /image {
root /usr/share/images;
}
假设 uri
是 /image/1.jpg
最终访问的目录是 /usr/share/images/image
这是因为 root
相当于host
,会加在 uri
前面,所以相当于 root/&uri
二、解决方案:使用 alias 替代 root
location /image {
alias /usr/share/images;
}
alias
会完全替代 uri 而不是拼接
三、总结
alias
指令会将请求路径中的/image
部分完全替换为/usr/share/images/
,从而直接访问/usr/share/images
目录。root
指令则会将请求路径中的/image
部分追加到根目录/usr/share/images
后面,导致访问/usr/share/images/image
目录。