2012-06-30 27 views
1

考慮一個URL的情況爲:PHP - 從鏈接本身獲取信息而不是GET參數?

www.example.com/softwares/download.php?f=firefox&v=13 

它看起來並不好,因爲網址:

www.example.com/softwares/firefox/download?v=13 

或相同download.php用作:

www.example.com/softwares/chrome/download?v=20 

我如何能實現這種類型的URL在PHP過濾?

某些時候,我想在這裏蓋:

  1. 我不需要這裏的一個文件夾的層次結構就像爲/chrome//firefox/和不同的不同的文件夾
  2. 只能有兩個PHP文件(因爲我希望)所有產品:/software/software-info.php/software/download.php(已獲得here)。
  3. 我能夠在PHP中從數據庫中獲取信息,但只是想爲不同的產品提供不同的鏈接。

我是一個Java Web開發人員,其中您有Filters從部分鏈接獲取信息並相應地重定向請求。

我是PHP程序設計新手,如果這個問題已經提出或明顯表示請原諒我並提供問題鏈接。

回答

2

這是您應該使用url重寫(mod-rewrite in .htaccess)的理想選擇。 你的訪問者瀏覽到:

www.example.com/softwares/firefox/download?v=13 

甚至

www.example.com/softwares/firefox/13/ 

,但你的服務器將它理解爲:

www.example.com/softwares/download.php?f=firefox&v=13 
+0

將使用'mod-rewrite'將用戶重定向到新頁面還是隻是在內部轉發請求? – Asif

+0

這取決於你設置的標誌。 Iirc [NC]將保持沉默(即僅限於內部),[R = 301]將重定向用戶。雖然我不是那些旗幟的專家,但您應該檢查文檔以確保。 –

+0

嘿@Bob我無法將你的幫助轉化爲工作.. :(谷歌搜索,但無法找到相關的資源..請你指點我關於它的任何不錯的文檔文章?或代碼來實現這一點? – Asif

1

您可以使用htaccess的文件做URL重寫。本質上,這將允許您在/ software /之後獲取url的片段,並將它們的參數傳遞給軟件腳本控制。

還有一堆使用'路由'的PHP框架。它們基於與URL重寫相似的主體。我推薦Codeigniter作爲一個很好的起點 - 這是一個簡單的框架,有大量的文檔和教程。

祝你好運!