nginx同域名配置多目录路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx同域名配置多目录路径相关的知识,希望对你有一定的参考价值。

站点换了新的目录位置,要求是新的目录有文件访问新的,如果没有去老路径找
我是这么写的
server
server_name xxx.cn;
charset utf-8;
location /

index index.html index.shtml;
root /web/t; 新路径

if (!-f $request_filename)
root /web1/t; 老路径




发现问题是访问文件的链接没问题,但是访问域名的时候只要老路径没有文件就报403
例如www.xxx.cn/index.html 没问题

如果访问www.xxx.cn新目录有文件,老目录没文件就报403
新目录没文件,老目录有文件显示老的(正常)
新老都要有,显示新的(正常)

参考技术A server
server_name xxx.cn;
charset utf-8;
location /
index index.html index.shtml;
root /web/t; 新路径
error_page 404 = @not_found;


location @not_found
index index.html index.shtml;
root /web1/t; 老路径


追问

测试后不行啊,我不是想让他跳404
是想正常访问
其实就是我的域名更新到新目录了
比如web/123 旧的在web1/123 我想外面访问的时候优先访问新的文件,如果新的没有从旧目录找

是不是我这种写法不行?

追答

个人理解:
你这个写法不行,代码会一直向下执行,不管新目录有没有文件都会去找老目录。
可以看一下,nginx的错误日志:
应该新目录没有找到,会去/web1/t/web/t这样的目录找,可以将旧目录调整一下,应该是可以的。

本回答被提问者和网友采纳

以上是关于nginx同域名配置多目录路径的主要内容,如果未能解决你的问题,请参考以下文章

nginx服务器配置多域名

nginx+tomcat实现域名映射问题

如何设置nginx的虚拟域名及访问目录

nginx配置二级域名(多级域名)

5,nginx 多域名,配置多个conf 文件

nginx 本地怎么配置多项目的访问