nginx的 location 中的 root 与 alias 的差别
[ root ]
语法: root path
默认值: root html
配置段:http、server、location、if
[ alias ]
语法:alias path
配置段:location
root 与 alias 主要区别在于nginx 如何解释 location 后面的 uri ,这会使两者分别以不同的方式将请求映射到服务器文件上。
root 的处理结果是: root 路径 + location 路径。
alias 的处理结果是:使用 alias 路径替换 location 路径。
alias 是一个目录别名的定义,root 则是最上层目录的定义。
还有一个重要的区别是 alias 后面必须是用 "/" 结束,否则会找不到文件的,而 root 则可有可无。
root 实例:
location ^~ /t/ {
root /www/root/html/;
}
如果 一个请求的 URI 是 /t/a.html 时,web 服务器将会返回服务器上的 /www/root/html/t/a.html 的文件。
alias 实例
location ^~ /t/ {
alias /www/root/html/new_t/;
}
如果一个请求的 URI 是 /t/a.html 时,web 服务器将会返回服务器上的 /www/root/html/new_t/a.html 的文件。
注意这里时new_t , 因为alias 会把 location 后面配置的路径丢掉,把当前匹配到的目录指向到指定的目录
总结注意:
1、使用 alias 时,目录名后面一定要加 ”/“;
2、 alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
3、alias只能位于location块中。(root可以不放在location中)
文章为: nginx.cn原创,转载请注明本文地址: http://www.nginx.cn/4658.html