Regex 用于Nginx的正则表达式,URL中包含动态子目录元素

Regex 用于Nginx的正则表达式,URL中包含动态子目录元素,regex,nginx,Regex,Nginx,我在子目录中安装了几个应用程序,其名称结构类似于id random string: 17aefk 18kauf 19纳库 现在,我正在玩我的Nginx配置,它的工作方式如下: location /17aefk/ { try_files $uri /17aefk/index.php$is_args$args; } 但我希望所有文件夹都有一个工作位置,所以我想它应该是一个reg ex。但这是我挣扎的地方 location ^/(.+)/? { try

我在子目录中安装了几个应用程序,其名称结构类似于
id random string

17aefk
18kauf
19纳库

现在,我正在玩我的Nginx配置,它的工作方式如下:

    location /17aefk/ {
        try_files $uri /17aefk/index.php$is_args$args;
    }
但我希望所有文件夹都有一个工作位置,所以我想它应该是一个reg ex。但这是我挣扎的地方

location ^/(.+)/? {
        try_files $uri /$1/index.php$is_args$args;
}
只是导致错误
open()“/var/www/domain/17aefk/index.php/s/dashboard”失败(20:不是目录)

我是否可以获得更好的调试视图,或者您是否可以立即看到我的(regex)问题

编辑:
domain.com/17aefk/index.php
它将我转发到
domain.com/17aefk/index.php/s/dashboard
(由于web应用程序逻辑)

尝试针对动态文件夹的特定模式:

location ~ ^/\d+[a-zA-Z]+/ {
        try_files $uri /$1/index.php$is_args$args;
}

domain.com/17aefk/index.php
它将我转发到
domain.com/17aefk/index.php/s/dashboard
(由于web应用程序逻辑),在这种情况下,
open()
错误可能来自您的代码。我认为代码运行良好,因为我的第一个示例非常有效。当我想要支持动态URL结构时,它就不再工作了——所以只有那些更改才会抛出错误消息。这让我觉得它只能是Nginx配置。当您只有第一个示例时,它不会重定向到
domain.com/17aefk/index.php/s/dashboard
?它也可以,但第一个示例一切正常。正在加载站点,Nginx日志中没有错误。换到第二个例子,站点没有被加载,我得到了上面的错误消息。使用这种方法,index.php文件作为下载提供。所以它似乎改变了某事,但还不是完全正确的。php如何执行它而不是我下载它?我不知道所有的细节,但请尝试:
try\u files$uri/index.php$is\u args$args