nginx配置文件location路由转发问题?

本来服务端已经全部做好了,通过IP地址即可访问,突然收到通知说要在IP后面加/xxxx,也就是通过访问"IP地址/xxxx"来实现原先访问"IP地址"的功能,我的nginx配置文件中location块如下:

    location / {
    try_files $uri $uri/ /index.html;
    proxy_buffer_size 64k; 
    proxy_buffers 32 32k;
    proxy_busy_buffers_size 128k;
   }

location /xxxx {

root /var/www/html;
index index.html;
try_files $uri $uri/ /xxxx/index.html;

}

然后我把/var/www/html的文件转移到/var/www/html/xxxx中了,但是我访问"IP地址/xxxx"的时候,仍然尝试在/var/www/html下寻找index.html文件,为什么呢?

阅读 1.7k
1 个回答

第一 这不是PHP的配置文件,是Nginx的配置文件

第二 你的ROOT 指向是/var/www/html; 所以它只会在这个查找这个目录下的文件,

不知道当年有没有接触过IIS,有个名词叫 “虚拟目录”,你所设定的xxxx就是一个“虚拟目录” 并不需要和本地磁盘目录对应,
try_files $uri $uri/ /xxxx/index.html;

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题