2010-02-18 96 views
0

我終於得到了mod_rewrite規則,但是想要做更多的事情,但不知道如何。這是我目前有:mod_rewrite有關修改網址的問題

RewriteRule ^rider/(.*)/(.*)*$ /bar/standings/rider.php?lnum=$1&short=$2 

,讓我做到這一點:

http://pca.localhost/rider/214142/sme 
instead of 
http://pca.localhost/bar/standings/rider.php?lnum=214142&short=sme 

該工程的所有罰款和花花公子,但我想更完善它,所以,這將是:

http://pca.localhost/rider/fred/flinstone 

不過,我需要通過可變lnum緩衝區裏的,因爲它是唯一真正的ID鍵(即他們可以在DB兩個人名爲弗雷德flinstone)。短變量並不重要。我的目標是以某種方式傳遞名稱而不顯示lnum變量。有沒有辦法做到這一點?我可以在通過時隱藏lnum變量嗎?或者,我需要做一些漂亮的PHP/MySQL的工作?

歡迎任何建議,意見或建議。

回答

2

當客戶訪問您的網站時,唯一的關鍵就是網址。如果URL沒有唯一標識要查看的頁面,那麼您必須顯示某種消歧頁面或者您必須放棄該想法。

0

您可以嘗試在註冊時爲用戶生成一個唯一的ID,並在整個過程中使用該ID。例如,對於fred的flinstone

唯一id =佛瑞德(如果沒有fred的已經存在) 唯一id = fred的-flinstone(如果已經有一個fred的存在) 唯一id = fred的-flinstone1(如果已經有一個fred的flinstone目前)

這類的一些邏輯。

0

如果您必須首先從數據庫獲取ID,爲什麼不在Cookie中使用會話ID?或會話ID作爲GET或POST參數(即使用隱藏的表單字段)。

無論如何,暴露這樣的用戶ID並不是非常安全。使用「隨機」ID,如會話ID,並將其鏈接到用戶ID。