簡體   English   中英

關於修改網址的mod_rewrite問題

[英]mod_rewrite question about modifying urls

我終於在某種程度上降低了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密鑰(即,他們可能是數據庫中名為fred flinstone的兩個人)。 短變量沒有多大關系。 我的目標是以某種方式傳遞名稱而不顯示lnum變量。 有沒有辦法做到這一點? 我可以通過某種方式隱藏lnum變量嗎? 還是我需要做一些漂亮的php / mysql工作?

任何建議,評論或建議均受到歡迎。

當客戶端重新訪問您的網站時,您從客戶端獲得的唯一密鑰就是URL。 如果URL不能唯一標識要查看的頁面,則您必須顯示某種歧義消除頁面,或者必須放棄該想法。

您可以嘗試在注冊時為用戶生成唯一的ID,並在整個過程中使用該ID。 例如弗雷德·弗林斯通

唯一ID =弗雷德(如果沒有弗雷德已存在)唯一ID =弗雷德·弗林斯通(如果已經有弗雷德存在)唯一ID =弗雷德·弗林斯通1(如果已經存在弗雷德·弗林斯通)

這種邏輯。

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

無論如何,這樣公開用戶ID並不是很安全。 使用“隨機” ID(例如會話ID),並將其鏈接到用戶ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM