2010-12-11 8 views
0

Im mit asp.net mvc C#. Basierend auf Benutzereingaben möchte ich den Text speichern, den sie in die DB eingeben und eine URL mit diesem Text erstellen. Es wird eine eindeutige ID geben, die mit diesem Text verbunden ist.Erstellen Sie saubere URLs und Verwalten von Duplikaten

Was sollte ich bei der Erstellung von "sauberen" URLs berücksichtigen?

und wie sollte ich Wiederholungen vermeiden - also jede URL sollte eindeutig sein, also wenn 2 Leute eingeben: "Hey, Check My cool URL!"

Ich würde wahrscheinlich wollen so etwas wie http://www.mysite.com/links/hey-check-my-cool-url/

Wie kann ich sie immer eindeutig sein sicherzustellen, und was soll ich tun, wenn die gleiche Beschreibung zweimal eingegeben wird?

+0

Ich weiß nichts über ASP, aber Sie könnten eine GUID verwenden, so wird es nicht wiederholen. Oder überprüfen Sie einfach, ob der Benutzer bereits in der Datenbank eingetragen ist. – Machinarius

Antwort

1

Die meisten Menschen enden mit einer Variation von Loendar Karadimas Lösung. Jedoch sind zwei Systeme, die, dass ich dazu neigen, zu verwenden sind:

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

Dies ist, weil es zeigt, dass die xxx Ziffern sind nicht Teil des Titels des Lenkers (je nachdem, was Sie tun). Grundsätzlich

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

kleben die xxx Ziffern am Ende, weil für SEO Zwecke (wenn Sie Pflege) ist es wahrscheinlicher, dass Worte näher an der Wurzel Ihrer URL höher predence für Page Rank hat. Natürlich nehmen Sie das mit einem Körnchen Salz, wie die meisten anderen SEO Tipps!

PS, ich weiß nicht viel über ASP überhaupt.

+0

xxx kann eine GUID sein. und ich bevorzuge: http: ///www.mysite.com/links/xxx/hey-check-my-cool-url –

0

Sie könnten eine kleine (random) Sequenz vorangestellt wird oder der Benutzer gezwungen, einen anderen Begriff eingeben, je nach Ihren Anforderungen (Ich würde die erste bevorzugen):

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

ich in nur Buchstaben und Ziffern Faktor würde , das Entfernen alles anderes durch einen einfachen regulären Ausdruck als Whitelist-Ansatz, das heißt:

[^\w\d]{1,} 

Dieser Ausdruck soll alles passen, die nicht ein alphanumerisches ist.

Verwandte Themen