2016-02-05 35 views
0

對不起,這樣簡短的標題。我想知道Google+如何使用戶網址如此乾淨。我的意思是這樣的:
https://plus.google.com/+PuruVijay清理Google+之類的URL


會帶我到我的網頁。我想知道這是如何+後/放,以及它如何加載相應的頁面。我想要一個數據庫來獲取URL。該網址實際上應該像
Plus.Google。 ?COM /用戶ID = 134566

尋找一個很好的回答,請幫助

編輯: 一個例子是此頁的URL的

+0

這太寬泛了,沒有關於服務器設置的任何細節。有很多方法可以做到這一點,但這取決於你使用的是什麼。 – whrrgarbl

+0

@whrrgarbl它的localhost Apache到現在爲止,但如果可以用php或JavaScript來完成,那將是非常好的 –

+0

好的,這一點非常重要。您應該編輯您的問題以反映該問題並添加標籤,以便人們可以找到它。 – whrrgarbl

回答

0

你也可以做這樣的...只是你需要創建名稱爲 的文件夾http://yoursite.com/PuruVijay

這裏PuruVijay是你需要在你的網站目錄..創建並把索引文件夾中

+1

可怕的想法。我不能爲每個用戶創建一個完整的文件夾。我只需要從數據庫獲得價值 –

0

在你說你正在使用Apache服務器的註釋文件夾。處理這種URL操作的典型方法是模塊mod_rewrite,您可以在here上找到相關文檔。這使用正則表達式來匹配URL並直接指向另一個。例如,對於/〜用戶/ U規則/用戶

RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 

對於Google+的例子,你說你要翻譯從/+PuruVijay/user?id=134566。這會稍微複雜一些,因爲給定的URL不包含用戶ID,所以您必須以其他方式檢索該號碼。但是,您可以使用mod_rewrite重定向到/user?name=+PuruVijay。這看起來是這樣的(沒有測試!

RewriteRule ^/\+(.*) /user?id=$1 

然後,你user頁面可以得到id參數,並期待它在數據庫中,以顯示正確的頁面,同時允許用戶在鍵入易於記憶的URL。

至於映射PuruVijay134566,Google+要求定製網址是唯一的,所以在手柄PuruVijay和用戶ID號134566之間的1-1對應。否則,在給定自定義URL的情況下查找特定ID號是不可能的。如果您決定允許像這樣的自定義句柄,您的網站將不得不放置類似的限制。

+0

其實我想知道如何將user.php?id = 45677轉換爲/ users/3556543。不要認真對待身份證 –

+0

在這種情況下,您只需切換規則,像'^/user.php?id =(\ d +)/ users/$ 1'來映射/user.php?id = 1234到/ users/1234。但要讓瀏覽器從/user.php?id=1234轉到/ users/5678,您需要執行一些服務器端處理來查找其他號碼,然後將其重定向到新頁面。 – whrrgarbl