Nginx位置路径匹配

时间:2017-02-14 22:46:05

标签: nginx configuration

非常简单,但出于某种原因,我无法弄清楚正确的语法:

location /ios/ {
     try_files $uri $uri/ /ios/index.php$is_args$args;
}

location /cap/ {
     try_files $uri $uri/ /cap/index.php$is_args$args;
}

location /aww/ {
     try_files $uri $uri/ /aww/index.php$is_args$args;
}

我想要将所有这些内容组合起来,并在顶级目录中添加更多应用程序。

设置是:每个目录都是自己的应用程序(代码点火器或laravel)并驻留在domain.com/:app

我正在尝试在这里组合路径(prod站点是Apache,在这里使用nginx),但我尝试这样做的所有尝试都失败了。

我尝试了~ /([\w\-]+)/ [...] /$1/index.php[...]但是失败了。仅使用~ /ios/失败(导致页面下载)。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您可以使用命名位置对正确的index.php文件执行内部重写:

location / {
    try_files $uri $uri/ @rewrite;
}
location @rewrite {
    rewrite ^(/[^/]+)/ $1/index.php$is_args$args last;
    return 404;
}

有关详情,请参阅this document