Nginx动态定位路径配置
Nginx dynamic location path configuration
首先我想声明我是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/;
}
...
}
这很好用,虽然对于每个 microsite 我添加到现有的,它需要添加一个新位置参考新 的路径微型网站.
我的问题是: 是否可以动态设置 location
参数,使其捕获并引用 [=37] 中存在的任何子目录=]microsite/ 目录?
例如沿重写规则 rewrite ^(/download/.*)/media/(.*)\..*$ /mp3/.mp3 last;
的内容(取自 nginx 站点)但应用于 location
参数,例如:
location ~ ^/microsite/(.*)$ {
try_files $uri $uri/ /microsite//;
}
其中</code>会抓取<code>(.*)
传入的子目录名?
(我尝试了参考(另一个) 问题的答案构建的这个片段,尽管它没有用)
此外,我不是 Regex 专家,我过去对它进行了一些调整,但那是不久前的事了,我不记得确切的术语,所以这可能是问题的一部分,也许?!
无论如何,我们将不胜感激。
提前致谢!!
尝试以下方法:
location ~ ^/microsite/(?<foo>.+)$ {
try_files $uri $uri/;
root /microsite/$foo;
}
您可能需要将捕获限制在前两个路径段:
location ~ ^(/microsite/[^/]+) {
try_files $uri $uri/ /;
}
[^/]
字符 class 匹配任何不是 /
的字符
首先我想声明我是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/;
}
...
}
这很好用,虽然对于每个 microsite 我添加到现有的,它需要添加一个新位置参考新 的路径微型网站.
我的问题是: 是否可以动态设置 location
参数,使其捕获并引用 [=37] 中存在的任何子目录=]microsite/ 目录?
例如沿重写规则 rewrite ^(/download/.*)/media/(.*)\..*$ /mp3/.mp3 last;
的内容(取自 nginx 站点)但应用于 location
参数,例如:
location ~ ^/microsite/(.*)$ {
try_files $uri $uri/ /microsite//;
}
其中</code>会抓取<code>(.*)
传入的子目录名?
(我尝试了参考(另一个)
此外,我不是 Regex 专家,我过去对它进行了一些调整,但那是不久前的事了,我不记得确切的术语,所以这可能是问题的一部分,也许?!
无论如何,我们将不胜感激。
提前致谢!!
尝试以下方法:
location ~ ^/microsite/(?<foo>.+)$ {
try_files $uri $uri/;
root /microsite/$foo;
}
您可能需要将捕获限制在前两个路径段:
location ~ ^(/microsite/[^/]+) {
try_files $uri $uri/ /;
}
[^/]
字符 class 匹配任何不是 /