Regex 如何根据位置动态设置nginx根目录?

Regex 如何根据位置动态设置nginx根目录?,regex,nginx,Regex,Nginx,我找不到任何具体的信息,但我基本上是想抓住一个位置,比如: http://domain.com/project/Content/Images/image.png 我想让它指向根,就像这样: /var/www/$project/Content/Images/image.png 这是我试图整理的东西,但似乎不起作用: location ~ ^/(?<project>.+)/Content/^(?<content>.+)$ { root /var/www/$proj

我找不到任何具体的信息,但我基本上是想抓住一个位置,比如:

http://domain.com/project/Content/Images/image.png
我想让它指向根,就像这样:

/var/www/$project/Content/Images/image.png
这是我试图整理的东西,但似乎不起作用:

location ~ ^/(?<project>.+)/Content/^(?<content>.+)$ {
    root /var/www/$project/Content/$content;
}
location~^/(?.+)/Content/^(?.+)${
root/var/www/$project/Content/$Content;
}

我似乎没有捕捉到这个位置,因为我得到了一个404错误,它是用一个php页面设置的,我用try_文件在一个位置为/。这让我觉得regexp是错误的,但我不确定。

我认为你真的很接近。您的正则表达式搜索字符串中有一个额外的^表示“从行首开始匹配”

location~^/(?。+)/Content/(?。+)${
root/var/www/$project/Content/$Content;
}

您能否提供更多关于“不工作”的信息?根目录是否正在更新?你得到的根值不正确吗?很抱歉,我做了一件最困扰我的事情。我用更多的信息更新了这个问题。为你的答案添加了一个编辑,使它完全符合我的预期。谢谢你的帮助!
location ~ ^/(?<project>.+)/Content/(?<content>.+)$ {
    root /var/www/$project/Content/$content;
}