2010-12-11 7 views
0

Im using asp.net mvc C#. Basé sur l'entrée de l'utilisateur, je veux enregistrer le texte qu'ils entrent dans la base de données et créer une URL en utilisant ce texte. il y aura un identifiant unique associé à ce texte aussi.Création d'URL propres et gestion des duplications

Que dois-je prendre en compte lors de la création d'URL "propres"?

et aussi comment devrais-je éviter la répétition - c'est-à-dire chaque URL devrait être unique, donc si 2 personnes tapent: "Hey, Check My cool !!"

Je veux probablement quelque chose comme http://www.mysite.com/links/hey-check-my-cool-url/

Comment puis-je assurer qu'ils seront toujours unique et que dois-je faire si la même description est entré deux fois?

+0

Je ne connais rien à ASP, mais vous pouvez insérer un GUID, donc il ne répétera pas. Ou vérifiez simplement si ce que l'utilisateur a entré est déjà sur la BD. – Machinarius

Répondre

1

La plupart des gens se retrouvent avec une variation de la solution de loannis karadimas. Cependant, deux régimes qui que je tends à utiliser sont:

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

En effet, il indique que les chiffres de xxx ne font pas partie du titre du lien (en fonction de ce que vous faites).

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

Fondamentalement, les chiffres en tiennent xxx à la fin, parce que pour des fins de SEO (si vous vous souciez) il est plus probable que les mots plus près de la racine de votre URL a predence supérieur pour le rang de page. Bien sûr, prenez cela avec un grain de sel, comme la plupart des autres astuces SEO! PS, je ne connais pas du tout ASP du tout.

+0

xxx peut être un GUID. et je préfère: http: ///www.mysite.com/links/xxx/hey-check-my-cool-url –

0

Vous pouvez préfixer une petite séquence (aléatoire) ou forcer l'utilisateur à saisir une phrase différente, en fonction de vos besoins (je préférerais la première):

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

Je en compte que des lettres et des chiffres , enlever tout le reste à l'aide d'une simple expression régulière comme une liste blanche, à savoir:

[^\w\d]{1,} 

Cette expression doit correspondre à tout ce n'est pas un alphanumérique.

Questions connexes