Nginx location中root和alias的区别

文章详细介绍了Nginx配置中关于语法规则的优先级,如^~,~,~*,!~,!~*等,以及root和alias在处理URI时的不同。root按照请求URL与指定路径结合,而alias则直接指向指定目录。通过示例展示了如何使用这些规则来匹配和重定向HTTP请求,影响文件路径解析的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语法规则(按优先级)

=   表示精确匹配,优先级最高
 
^~  表示uri以某个常规字符串开头,用于匹配url路径(而且不对url做编码处理,
    例如请求/static/20%/aa,
    可以被规则^~ /static/ /aa 匹配到(注意是空格))
 
~   表示区分大小写的正则匹配
 
~*  表示不区分大小写的正则匹配
 
!~  表示区分大小写不匹配的正则
 
!~* 表示不区分大小写不匹配的正则
 
/   表示通用匹配,任何请求都会匹配到

root&alias文件路径配置

root/alias 是指定文件路径的两种方式,主要区别就是怎么解析location后面的uri

示例一:(访问同一个请求,root和alias展示不同路径下的图片)

访问 http://192.168.1.6/appicons/10.jpg

root:

location ^~ /appicons/{
    root /www/luci-static/resources/icons;
}
#这个location相当于访问服务器上的文件路径: /www/luci-static/resources/icons/appicons/10.jpg

alias:

location ^~ /appicons/{
    alias /www/luci-static/resources/icons/;
}
#这个location相当于访问服务器上的文件目录:/www/luci-static/resources/icons/10.jpg(即alias不会使用location后面配置的路径)
#而且alias 指定的目录名后面一定要加上 "/"

示例二:(通过不同请求,root和alias展示相同路径下的图片)
展示/www/luci-static/resources/icons/下的图片

root:

#访问https://192.168.1.6/luci-static/resources/icons/10.png
location /luci-static/resources/icons/ {
	root /www;
}
#实际访问服务器地址: https://192.168.1.6/www/luci-static/resources/icons/10.png

alias:

#访问https://192.168.1.6/appicons/luci-static/resources/icons/10.png
location /appicons/ {
	alias /www/;
}
#实际访问服务器地址: https://192.168.1.6/www/luci-static/resources/icons/10.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值