2010-12-11 59 views
0

即時通訊使用asp.net mvc c#。基於用戶輸入,我想保存它們在數據庫中輸入的文本並使用此文本創建一個URL。這個文本也會有一個唯一的id。創建乾淨的網址和管理重複

創建「乾淨」網址時應該考慮什麼?

以及我應該如何避免重複 - 即每個網址應該是唯一的,所以如果2人輸入:「嘿,檢查我的酷網址!!」

我可能會想是http://www.mysite.com/links/hey-check-my-cool-url/

我怎麼能保證他們永遠是獨一無二的,我應該怎麼做,如果輸入了相同的描述是兩次?

+0

我對ASP一無所知,但你可以插入使用GUID,所以它不會重複。或者只是檢查用戶輸入的內容是否已經在數據庫中。 – Machinarius 2010-12-11 16:33:58

回答

1

大多數人最終得到了一些loannis karadimas解決方案的變體。但是,有兩個方案是,我傾向於使用有:

http:///www.mysite.com/links/xxx/hey-check-my-cool-url 

這是因爲它表明XXX數字是不是鏈接的標題的部分(這取決於你在做什麼)。

http:///www.mysite.com/links/hey-check-my-cool-url-xxx 
http:///www.mysite.com/links/hey-check-my-cool-url/xxx 

基本上堅持了XXX數字在年底,因爲對於SEO的目的(如果你願意)更可能的話更接近你的URL的根對網頁排名越高predence。當然,就像大多數其他搜索引擎優化技巧一樣,用一粒鹽吧!

PS,我根本不瞭解ASP。

+0

xxx可以是一個GUID。我更喜歡:http:///www.mysite.com/links/xxx/hey-check-my-cool-url – 2010-12-11 18:13:27

0

你可以在前面加上一個小的(隨機)序列或強制用戶輸入不同的詞語,根據您的要求(我寧願在前):

http:///www.mysite.com/links/xxx-hey-check-my-cool-url/ 

我只有字母和數字組成因素,消除一切通過一個簡單的正則表達式作爲白名單的方式,即其他:

[^\w\d]{1,} 

這種表達應該匹配的一切,這不是一個字母。