2017-02-14 93 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