gpt4 book ai didi

Nginx 动态位置路径配置

转载 作者:行者123 更新时间:2023-12-01 12:24:49 25 4
gpt4 key购买 nike

首先,我想声明我对 nginx 比较陌生,我基本上只知道我在上周学到的东西。

也就是说,我目前有一个标准配置的 Nginx 服务器:

server {
listen 80;
server_name site.com;

root /var/www/site.com/;
index index.php;

location / {
try_files $uri $uri/ /index.php;
}

location /microsite/first {
try_files $uri $uri/ /microsite/first/;
}

location /microsite/second {
try_files $uri $uri/ /microsite/second/;
}

...
}

这工作正常,尽管对于我添加到现有站点的每个微型站点,它需要添加一个新的位置,指的是新微型站点的路径。

我的问题是:是否可以动态设置 location参数以捕获和引用 中存在的任何子目录的方式微型网站/目录?

例如符合重写规则的东西 rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last; (取自 nginx 站点)但适用于 location参数,如:
location ~ ^/microsite/(.*)$ {
try_files $uri $uri/ /microsite/$1/;
}

其中 $1将捕获在 (.*) 中传递的子目录名称?
(我尝试了我引用(另一个) Nginx dynamic location configuration 问题的答案构建的这个片段,尽管它不起作用)

另外,我不是正则表达式专家,过去我对它进行了一些调整,但那是不久前的事情了,我不记得确切的术语了,所以这可能是问题的一部分,也许?!

无论如何,感谢所有帮助。
提前致谢!!

最佳答案

您可能需要将捕获限制为前两个路径段:

location ~ ^(/microsite/[^/]+) {
try_files $uri $uri/ $1/;
}
[^/]字符类匹配任何不是 / 的东西

关于Nginx 动态位置路径配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com