2012-09-12 20 views
2

可能重複:
mod rewrite and query strings傳遞參數的URL(不與PHP的GET)

我知道的唯一的方式來傳遞的URL參數是在PHP中使用GET方法。但是我看到很多網站使用的是什麼,似乎是直接在URL參數,就像這樣:

http://.../page/2/ 

在這種情況下,是「頁」真正的參數?如果是這樣,它在代碼中如何處理?

或者這是位於目錄「page」中的目錄「2」的常規URL?這是否意味着無論何時創建新帖子,網站都會創建所有頁面和相應的目錄?

謝謝

+0

它也GET參數,但他們只是使用URL重寫技術....你可以谷歌 – Baba

+0

它被稱爲「漂亮的網址」,並有足夠的討論可用。 – deceze

+0

這仍然使用'$ _GET'來訪問參數。可能你需要閱讀更多關於'mod_rewrite'以及如何在php中處理重寫。 – verisimilitude

回答

1

這被稱爲url重寫。基本上這意味着你使用一個Apache模塊來重寫傳入的URL到新的URL,然後由Apache處理。

在你的例子中http://www.test.com/page/2/可能被重寫爲類似http://www.test.com/?page=2的東西。

如果您在因特網上搜索Apache URL重寫,您將獲得足夠的結果來解釋如何執行此操作。

+0

謝謝你的確切答案,我會研究一下! – ink

1

這些都是公約。 GET參數並不特定於PHP,這就是所有瀏覽器對錶單數據進行編碼的方式。例如,基於Java的webapps使用以分號分隔的參數。

你可以編寫一個簡單的圖層來將?alpha=1&beta=2轉換爲/alpha/1/beta/2,但是iw只是一個便宜的噱頭(除了像squid緩存這樣的極少數合法情況外)。

今天的網站做什麼是使用單一入口點模式。通常在使用apache的mod_rewrite時,所有請求都由index.php處理,並且路由工具可以爲特定的URL方案選擇適當的處理程序PHP文件。這些方案可以通過正則表達式輕鬆定義。

因此,總而言之,你決定你的網址的樣子。這不是一件容易的事,有許多搜索引擎優化蛇油銷售人員會讓你做各種瘋狂的東西。一個好的URL所做的是在你的服務中標識一個內容(文檔),並且你必須在整個服務中使用這個URL來解決它。

不要忘記:很酷的網址不會改變。您在2年內放棄您當前的代碼庫,並從頭開始重建您的網站。設計您的URL方案的方式從邏輯角度來看是有意義的,而不是依賴於您的Web應用程序設計。