Nginx配置通配符第一个文件夹

时间:2018-07-03 11:03:58

标签: nginx

我正在努力让nginx conf按照我们需要的方式工作。 基本上在同一个域中,我们有很多应用程序,每个应用程序都位于根文件夹中。用户安装应用程序时,无法知道文件夹的名称。

location / {
    try_files $uri $uri/ /index.php?$args /index.php?q=$uri&$args;
    }

location /myfiles {
    try_files $uri $uri/ /myfiles/index.php?$args /myfiles index.php?q=$uri&$args;
    }

如果我指定第二个文件夹,它将使myfiles中的应用程序正常工作,URL可以正确解析。如果我不这样做,那么主应用程序将尝试解析该URL,它将失败。

所以我想要类似的东西:

location /* {
    try_files $uri $uri/ /$folderrequested/index.php?$args /$folderrequested/index.php?q=$uri&$args;
    }

其中*是任何根文件夹,例如myfiles,mycrm,myaccount,这些文件会将业务量路由到该文件夹​​。

欢迎任何建议和想法!

1 个答案:

答案 0 :(得分:0)

将所有应用程序根目录放在父目录中。

server {
    listen .....;
    server_name ....;
    root /path/to/apps;
    index index.php index.html;

    location / {
    }

    location ~ \.php {
        fastcgi_pass localhost:8000;
    }
}

宾果