nginx同域名配置多目录路径

站点换了新的目录位置,要求是新的目录有文件访问新的,如果没有去老路径找我是这么写的server{server_namexxx.cn;charsetutf-8;locati... 站点换了新的目录位置,要求是新的目录有文件访问新的,如果没有去老路径找
我是这么写的
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
新目录没文件,老目录有文件显示老的(正常)
新老都要有,显示新的(正常)
展开
 我来答
luchao126
推荐于2016-02-27
知道答主
回答量:11
采纳率:0%
帮助的人:10.8万
展开全部
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这样的目录找,可以将旧目录调整一下,应该是可以的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式