2010-04-04 54 views
3

對於我的社交網站,我想建立一個Facebook或Twitter類似的URL重寫命名約定。.htaccess twitter或facebook網址命名約定

使用Twitter作爲一個例子,他們已標記的網頁twitter.com/about和另一頁面標記twitter.com/{$username}

但是,你怎麼區分之間說誰就到了登記用戶我們的網站爲「關於」那麼。由此我們將在用戶「大約」和頁面之間產生服務器衝突。

處理這個問題的最佳方法是什麼?

回答

2

通常,你會看到這個實現,所以衝突是不可能的。例如,您可以將所有用戶駐留在虛擬/用戶目錄或子域中:mysite.com/users/msilvisusers.mysite.com/msilvis

我不建議您讓所有用戶都可以通過您的網站的根目錄進行訪問,因爲這可能會限制您添加網頁。例如,假設你還沒有「關於」頁面,但用戶註冊並自稱「關於」;你完蛋了。

如果您仍然選擇這麼做,請在註冊之前嘗試通過HTTP請求將您的網站發送到用戶擁有的頁面。如果你沒有得到404,那麼東西已經有這個名字。

0

我會限制某人創建與現有網址衝突的用戶名的能力。

0

如果你還處於開發的早期階段,你可以看看Kohana PHP框架。它的路由功能解決了由zneak和dd突出顯示的問題,您只需在您的路由中定義http://yoursite.com/about將指向特定的控制器/操作,我認爲您正在使用MVC設計模式,因爲您需要像url結構這樣的twitter。

希望有幫助!

編輯:我忘了提及,這不會阻止人們註冊成爲關於它,它只會阻止世界其他地方被鏈接到該人頁面,以防止他們你需要針對您的核心網頁aka,使用某種驗證,聯繫等。

2

我們的最終決定歸結爲,是在我們的服務器mysite.com/user上請求一個頁面時,它首先檢查是否是一個頁面,如果它不是一個頁面,它假定它是一個頁面用戶,在這種情況下,它會檢查用戶是否是對象,如果不是,則會傳遞給我們的404頁面。因此,我們打算使用前面提到的HTTP請求,然後如果某些用戶「關於」仍然註冊了我們現在有一個頁面,實質上是吸引他爲他,因爲他是不會看到他的頁面。