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个回答
test
2024-07-07
第一 这不是PHP的配置文件,是Nginx的配置文件
第二 你的ROOT 指向是/var/www/html; 所以它只会在这个查找这个目录下的文件,
不知道当年有没有接触过IIS,有个名词叫 “虚拟目录”,你所设定的xxxx就是一个“虚拟目录” 并不需要和本地磁盘目录对应,try_files $uri $uri/ /xxxx/index.html;
try_files 按指定的file顺序查找存在的文件,并使用第一个找到的文件进行请求处理,只有在没找到的时候才会重新请求最后一个参数给定的uri,就是新的location匹配
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容