问题:是否可以将第二个文件夹的内容“添加”到当前文件夹文件内容中?(本质上,我是从完整 Unix 的角度提问的,但 nginx 可能也可以工作,因为目标是 Web 服务器)
例子:
我有/pub
我们的服务器软件所在的位置。它有index.php
但我也有住的/static/files
地方test.php
。我不想放置test.php
在/pub
.我想要的是,如果我使用 root 访问 nginx Web 服务器,/pub
它会test.php and index.php
在 root 中看到两者。
为什么?
因为现在我已经向我们的服务器添加了很多需要存在于根目录中的验证文件。bing_dfsfsfsdfs.html
和之类的文件google_aaddasdjsad.html
。这是一个多服务器设置,因此文件数量相当多。我正在考虑创建一个文件夹/static/files
,可以在其中存储所有这些单个文件......并/pub
仅使用软件保持文件夹干净。
答案1
纯粹从 nginx 的角度来看,这似乎是一份工作try_files
。使用try_files
,您可以告诉 nginx 尝试给定 URI 的多个位置。所以像这样:
location ~ ^/([^/]+)$ {
try_files $uri /static/files/$1 =404;
}
我不确定要使用的确切语法,但重点是告诉 nginx 首先尝试文件的默认根目录,然后尝试static/files
根目录中的目录,如果没有任何效果,最后返回 404。
答案2
您可以使用alias
http://nginx.org/en/docs/http/ngx_http_core_module.html#alias
定义指定位置的替换。
location ~ ^/(.+\.(?:gif|jpe?g|png))$ {
alias /static/files/$1;
}