我想为我的项目创建一个预览 URL。每个用户在驱动器上都有一些目录(主目录),其中包含一个名为/docs/
的文件夹。
当用户调用其URL(例如https://preview.example.com/microsoft/VisualStudioCode
)时:
http(s)://preview.example.com/<company>/<project>/
我如何告诉 nginx ,他应该在内部将/docs
附加到URL?
给出以下目录结构:
- /opt
- /users
- <company>
- <project>
- <project>
- /microsoft
- /VisualStudioCode
- /docs
- /downloads
- /temp
- config.json
nginx的 DocumentRoot 默认为/opt/users/
,而<company>/<project>
作为真实目录存在。
如果用户打开URL,我如何创建Alias
或其他配置来导航到/docs
目录?
答案 0 :(得分:0)
假设您的nginx.conf其余部分设置正确,则必须添加此服务器块:
server {
server_name preview.example.com;
root /opt/users;
location / {
try_files $uri/docs =404;
}
}
如果您想从秘密docs目录中提供任何文件,则必须在位置栏中进行正则表达式,例如:
location ~ ^/(?<company>.+)/(?<project>.+)/(?<filepath>.+)$ {
try_files /$company/$project/docs/$filepath =404;
}