5. 重定向的两种配置方式

一灰灰blogShellNginxNginx约 497 字大约 2 分钟

一段时间没有配置过nginx,果不其然之前学到的又还回去了,下面给出基于rewrite/alias的两种重定向配置方式

需求设置 /ximg 路径下的请求,访问 /home/yihui/html 下的html文件,应该怎么配置?

1. root指定方式

最容易想到的就是直接指定root,如下

location /ximg {
  root /home/yihui/html/;
  index index.html;
}

直接使用上面这种方式,访问之后会发现404,此时若再路径 /home/yihui/html/ximg/ 下存在文件 index.html,则可以正常访问

即上面这种配置,再实际访问文件时,会再 root 配置的路径下 + url请求路径(即上面的ximg)

所以单纯使用root时,我们需要额外处理的是将希望访问的所有文件,都放在 ximg 目录下

2. root + rewrite 方式

当我们希望能直接访问到 /home/yihui/html/ 目录下的文件时,可以考虑结合 rewrite 来重定向实现,如

location /ximg/ {
  root /home/yihui/html/;
  rewrite ^/ximg/(.*)$ /$1 break;
}

上面这个使用正则匹配,实现重定向,这样访问资源时,直接从 /home/yihui/html 下查找了;但是需要注意,若nginx中配置了一个/tt 的规则,此时若访问 /ximg/tt 时,会转到请求 /tt

3. alias 方式

直接使用alias来重置文件目录,这样在访问时,不需要补ximg目录

location /ximg {
    alias /home/yihui/html/;
    index index.html;
}

总体来看,这种方式属于最简单的姿势了

4.小结

主要针对root + alias两个进行说明

  • root:设置根目录,在实际访问文件时,会在根目录下,查找匹配的path路径下的文件(即path路径需要作为资源的目录树层级)
  • alias:重置当前文件的目录,不需要补path路径
Loading...