C# 创建干净的URL并管理重复
我正在使用asp.net mvc#。根据用户输入,我想保存他们在数据库中输入的文本,并使用此文本创建url。也将有一个与此文本关联的唯一id 创建“干净”URL时,我应该考虑哪些因素 以及我应该如何避免重复-即每个url都应该是唯一的, 所以如果有两个人输入:“嘿,检查我的酷网址!!” 我可能想要像这样的东西 如何确保它们始终是唯一的?如果输入两次相同的描述,我该怎么办?您可以根据您的要求预先输入一个小的(随机)序列或强制用户输入不同的短语(我更喜欢第一个): 我只考虑字母和数字,通过使用简单的正则表达式作为白名单方法删除所有其他内容,即:C# 创建干净的URL并管理重复,c#,sql,asp.net-mvc,C#,Sql,Asp.net Mvc,我正在使用asp.net mvc#。根据用户输入,我想保存他们在数据库中输入的文本,并使用此文本创建url。也将有一个与此文本关联的唯一id 创建“干净”URL时,我应该考虑哪些因素 以及我应该如何避免重复-即每个url都应该是唯一的, 所以如果有两个人输入:“嘿,检查我的酷网址!!” 我可能想要像这样的东西 如何确保它们始终是唯一的?如果输入两次相同的描述,我该怎么办?您可以根据您的要求预先输入一个小的(随机)序列或强制用户输入不同的短语(我更喜欢第一个): 我只考虑字母和数字,通过使用简单的
[^\w\d]{1,}
这个表达式应该匹配所有不是字母数字的东西。大多数人最终都会得到一些loannis-karadimas解决方案的变体。然而,我倾向于使用两种方案:
http:///www.mysite.com/links/xxx/hey-check-my-cool-url
这是因为它表明xxx数字不是链接标题的一部分(取决于您正在做什么)
基本上是将xxx数字放在末尾,因为出于SEO目的(如果你在意的话),更接近URL根的单词更有可能优先于页面排名。当然,像大多数其他SEO技巧一样,这是一点也不为过的
另外,我对ASP了解不多。我对ASP一无所知,但您可以使用GUID插入,这样就不会重复。或者只需检查用户输入的内容是否已经在DB.xxx上,是否可以是GUID。我更喜欢:http:///www.mysite.com/links/xxx/hey-check-my-cool-url
http:///www.mysite.com/links/xxx/hey-check-my-cool-url
http:///www.mysite.com/links/hey-check-my-cool-url-xxx
http:///www.mysite.com/links/hey-check-my-cool-url/xxx