一段时间没有配置过nginx,果不其然之前学到的又还回去了,下面给出基于rewrite/alias的两种重定向配置方式
需求设置 /ximg
路径下的请求,访问 /home/yihui/html
下的html文件,应该怎么配置?
1. root指定方式
最容易想到的就是直接指定root,如下
1 | location /ximg { |
直接使用上面这种方式,访问之后会发现404,此时若再路径 /home/yihui/html/ximg/
下存在文件 index.html
,则可以正常访问
即上面这种配置,再实际访问文件时,会再 root 配置的路径下 + url请求路径(即上面的ximg)
所以单纯使用root时,我们需要额外处理的是将希望访问的所有文件,都放在 ximg
目录下
2. root + rewrite 方式
当我们希望能直接访问到 /home/yihui/html/
目录下的文件时,可以考虑结合 rewrite 来重定向实现,如
1 | location /ximg/ { |
上面这个使用正则匹配,实现重定向,这样访问资源时,直接从 /home/yihui/html
下查找了;但是需要注意,若nginx中配置了一个/tt
的规则,此时若访问 /ximg/tt
时,会转到请求 /tt
了
3. alias 方式
直接使用alias来重置文件目录,这样在访问时,不需要补ximg
目录
1 | location /ximg { |
总体来看,这种方式属于最简单的姿势了
4.小结
主要针对root + alias两个进行说明
- root:设置根目录,在实际访问文件时,会在根目录下,查找匹配的path路径下的文件(即path路径需要作为资源的目录树层级)
- alias:重置当前文件的目录,不需要补path路径
一灰灰的联系方式
尽信书则不如无书,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 个人站点:https://blog.hhui.top
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
- 微信公众号:一灰灰blog