alias 是 Nginx 中用于定义路径别名的指令,通常用于将请求路径映射到文件系统中的不同路径。与 root 指令不同,alias 会将匹配的路径部分替换为指定的路径。

语法

location /path/ {
    alias /new/path/;
}

说明

  • location /path/:定义匹配的请求路径。

  • alias /new/path/:将匹配的路径部分替换为 /new/path/

示例

假设文件系统中有以下结构:

/var/www/html/
    ├── images/
    │   └── logo.png
    └── static/
        └── css/
            └── style.css

示例 1:访问 /images/logo.png 映射到 /var/www/html/images/logo.png

location /images/ {
    alias /var/www/html/images/;
}
  • 请求 /images/logo.png 时,Nginx 会返回 /var/www/html/images/logo.png

示例 2:访问 /static/css/style.css 映射到 /var/www/html/static/css/style.css

location /static/ {
    alias /var/www/html/static/;
}
  • 请求 /static/css/style.css 时,Nginx 会返回 /var/www/html/static/css/style.css

注意事项

  1. alias 指令必须与 location 块一起使用。

  2. alias 路径必须以 / 结尾,否则可能导致路径解析错误。

  3. 如果 location 块使用正则表达式,alias 不能使用相对路径。

root 的区别

  • root:将请求路径附加到指定的根路径后。

  • alias:将匹配的路径部分替换为指定的路径。

例如:

location /images/ {
    root /var/www/html;
}
  • 请求 /images/logo.png 时,Nginx 会返回 /var/www/html/images/logo.png

而使用 alias

location /images/ {
    alias /var/www/html/images/;
}
  • 请求 /images/logo.png 时,Nginx 会返回 /var/www/html/images/logo.png

两者的主要区别在于路径的拼接方式。

本篇文章内容来源于:Nginxalias 访问路径别名指令详细说明以及案例