2017-02-14 94 views
1

相当简单,但由于某些原因,我无法找出正确的语法:Nginx的位置路径匹配

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

我想这里的路径组合(产品网站的Apache,Nginx的使用这里),但是我所有的尝试都失败了。

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

我在这里错过了什么?

+0

为什么会失败?怎么了? –

+0

@FaisalMemon页面下载。或者大多数是404页面下载。很奇怪,就像PHP没有被解释,即使我有标准的\ .php $ location捕获器。 – guice

回答

1

你可以使用一个命名位置,以进行内部重写正确index.php文件:

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

更多见this document

+0

完美!这似乎按预期工作,包括PHP解释。谢谢! – guice