2011-06-16 101 views
-1

我對mod_rewrite有點麻煩。謝謝你的幫助。變量.htaccess重寫

我試圖改變這個出發網址:

http://www.example.com/profile.php?u=72 

到這個網址我想顯示:

http://www.example.com/username 

其中username是用戶#72的用戶名,爲存儲在MySQL數據庫。我應該採取哪些措施來爲所有用戶做到這一點?

+0

你有沒有嘗試過你自己呢?完成任何研究? – martynthewolf 2011-06-16 13:34:41

+0

我知道基本的mod_rewrite的東西,但我不知道如何使用它來使用來自數據庫的信息,或者即使這是正確的做法。是的,當然我已經完成了研究,但是我找不到任何這方面的內容。或者我真的很愚蠢。感謝downvote,歡呼聲。 – 2011-06-16 13:36:40

+0

@Eric我沒有投下你的問題!你的問題看起來是「給我代碼」。你能告訴我們你曾經嘗試過但沒有工作嗎?此外,你顯然不愚蠢:) – martynthewolf 2011-06-16 13:41:31

回答

2
  1. 確保用戶名在數據庫中是唯一的 - 檢查是否區分大小寫。
  2. 將應用程序中指向前一個網址的所有舊網址替換爲使用用戶名的網址。
  3. 在您的用戶詳細信息頁面上,按用戶名而不是ID選擇。

如果您有任何問題,我很樂意爲您解答具體問題。

+0

因此,基本上將舊網址替換爲'http://www.example.com/profile.php?u = username',然後mod_rewrite。非常酷,謝謝。 – 2011-06-16 13:41:19

2

聽起來就像是在向後思考 - 而是考慮如何將example.com/username轉換爲像example.com/profile.php?name=username這樣的URL,然後您的PHP可以使用該URL。通常,當您使用mod_rewrite時,您可以更改站點中的鏈接以鏈接到乾淨的URL,並使用mod_rewrite使其能夠理解它們。

2

您的mod_rewrite不使用來自數據庫的信息,您使用它來加載另一個頁面,同時顯示你想要的網址。

如果url不包含用戶ID,則無法完全按照您的要求使用它,您無法重定向到http://www.example.com/profile.php?u=72。但是,您可以重定向到http://www.example.com/profile.php?username=usernameprofile.php根據用戶名而不是id查找正確的用戶。