5. 重定向的两种配置方式
约 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...