2016-06-09 55 views
0

我在example.com/fruit.php有一個頁面。該頁面使用ISSET()解析參數以決定顯示用戶的內容。例如,example.com/fruit.php?name=apple&color=red。這是很容易做,但我寧願請求來的頁面是這樣的:Nginx的動態請求

mysite.com/fruit/apple/red 

因爲我知道只會有兩個參數,我可以很容易地解析URL建立我的網頁。然而,我怎樣才能配置nginx,以便example.com/fruit的任何請求都發送到fruit.php,以便頁面本身可以解析url。以下是我在我的位置塊曾嘗試:

location ~ /fruit { 
return 301 https://www.example.com/fruit.php; 
} 

這工作不適合我,我有大約一天在試圖弄明白包裹起來。任何幫助,將不勝感激。

回答

0

我覺得你接近這一錯誤。

如果您嘗試使用Web服務器創建和維護路線,那麼您不可避免地會遇到問題,比如每次部署時必須在生產服務器上循環Web服務器服務。

而且這一點,你緊緊的Web服務器配置連接到您的應用程序,這是不是最好的事情。

我推薦什麼是使用某種路由器的封裝,有助於保持你的路線爲您的項目。

看一看這個 stackoverflow question的答案。

然後使其解析到項目的index.php文件,然後將使用路由器來處理邏輯應用程序內你的路,你可以配置Web服務器。

在這裏你的nginx的配置最終會看起來像有一個看看:stackoverflow about nginx routing using index.php as an entry point for your requests.

+0

難道只是我或者是在node.js中VS nginx的這樣的事情米更容易1000%?或者它稍微簡單些? –

+0

這是真的,但即使使用NodeJS,您仍然需要使用http web服務器軟件包(如express)來提供一些高級路由功能。無論哪種方式,路由器都是必要的罪惡。 – vsharper

+0

是的,但是'express()'是一塊蛋糕。感謝您的輸入! –