2017-09-14 170 views
0

我試圖使用nginx中的位置塊將目錄路徑傳遞給index.php作爲獲取參數。作爲參數的Nginx目錄路徑

所以URL /api/arg1/arg2/傳遞作爲/api/index.php?arg1=$1&$arg=2

這裏是我下面的嘗試,有人可以用正則表達式或一個更好的方法幫助。

location ~ "^/api/(\w+)/([A-z,0-9].*)/$" { 

    alias /api/index.php?arg1=$1&arg2=$2; 

} 

側面說明,要傳遞的參數是一個字沒有被由數字和字母,無需其他符號的空格。

回答

1

試試下面

location ~ /api/(?P<arg1>\w+)/(?P<arg2>[A-z,0-9].*)/$" { 

    rewrite "^.*$" /api/index.php?arg1=$arg1&arg2=$arg2; 

} 

如果您不擔心這些ARGS數據的,我寧願用

location ~ "/api/(?P<arg1>[^/]+)/(?P<arg2>[^/]+)/$" { 

    rewrite "^.*$" /api/index.php?arg1=$arg1&arg2=$arg2; 

} 
+0

感謝您的答覆。在經歷了五個小時左右的nginx和獲取重定向循環後,找不到文件和配置錯誤,我放棄了並嘗試了nodejs,並設法在三分鐘後獲得我正在嘗試的內容。 (/^\/api \ /([az] +)\/$ /,handle);'''app.get(「/ api」,handle);''' '/'''''''''''''''''''''''''''''''''' – Seiche