Hello! 欢迎来到小浪资源网!


Nginx location路由转发:如何正确配置root指令和try_files指令?


Nginx location路由转发:如何正确配置root指令和try_files指令?

nginx配置location路由转发问题

对于nginx配置中location块的路由转发问题,请注意以下几点:

1. root指令指向的问题

首先,需要明确这并非php配置文件,而是nginx配置文件。从提供的配置中可以看到,root指令指向的是/var/www/html,因此nginx只会在此目录下查找相应的文件。

2. 虚拟目录的概念

iis中,存在虚拟目录的概念。而配置中的/xxxx实际上就是这样一个虚拟目录,它不一定要与本地磁盘目录相对应。

3. try_files指令的规则

try_files指令会按指定的文件顺序查找是否存在的文件,并使用第一个找到的文件进行请求处理。只有在未找到时,才会重新请求给定最后一个参数的uri,即新的location匹配。

在这种情况下,try_files配置为:

try_files $uri $uri/ /xxxx/index.html;

这意味着它会先尝试查找$uri,然后查找$uri/,最后才查找/xxxx/index.html。因此,即使/var/www/html/xxxx中存在index.html文件,nginx仍会优先在/var/www/html中查找。

因此,要解决此问题,需要将root指令指向/var/www/html/xxxx,并确保/xxxx/index.html文件正确存在于此目录下。

相关阅读