我目前使用與try_files的REST類型的應用程序一起以下位置指令:用正則表達式Nginx的位置指令提取文件夾名稱,使用try_files
location /branches/branchx/app/api/ {
try_files $uri $uri/ /branches/branchx/app/api/api.php$is_args$args;
}
哪裏branchx
是我的Git的名字科。因此,我可以有多個分支,如:branch1
,branch2
等。
因此,我需要手動創建的每一個分支我將創建一個指令。
爲了避免這個問題,我期待使用正則表達式來提取分支名稱並在我的try_files指令中使用它。所以我有一個單一的位置指令照顧各分公司管理的動態系統。
所有試圖使用正則表達式在try_files迄今通過拋出405或404錯誤而告終。
我最後一次嘗試(基於@Richard史密斯回答):
location ~ ^(/branches/[^/]+/app/api)/ {
try_files $uri $uri/ $1/api.php$is_args$args;
}
哪個返回匹配的URI 405(不支持)應答。
這似乎並不爲我工作。由於我有沒有把在本例中爲簡化多了一個子文件夾:'/分支機構/ BRANCH1 /應用/ API /'我適應與'〜^(/分支機構/ [^ /] + /應用/ API,你的榜樣)/'和'$ 1/app/api.php'的try_files。有什麼建議麼? –
有許多選擇,但沒有看到的問題是很難提出具體的建議。你應該考慮編輯你的問題並改進你的例子。 –
這樣做我澄清了這個問題。關於位置,我剛剛添加了'app'子文件夾。 –