Nginx 动态位置路径配置
cloudgamer
阅读:22
2025-01-19 22:14:33
评论:0
首先,我想声明我对 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/;
}
[^/]
字符类匹配任何不是
/
的东西
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。