对于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文件正确存在于此目录下。