我见过很多关于URL路由的讨论,还有很多很棒的建议.但在现实世界中,有一件事我还没有讨论过:
假设您正在构建一个医疗站点,其中有一个带有Subcategory.分类和可选的文章的(1对多)。(可以使用任何例子,但是医学领域有很多长单词)
示例类别/子/文章结构:
- Homeopathic Medicine
1. What's homeopathic medicine?
- _Healthy Eating_
1. Should you drink 10 cups of coffee per day?
2. Are Organic Vegetables worth it?
3. Is Burger King® evil?
4. Is "French café" or American coffee healthier?
- _Genetic Conditions_
1. Preventing Spina Bifida before pregnancy.
2. Are you predisposed to live a long time?
在这样的结构中,如果你选择:/{}/{ some }/{Category},那么就会有一些。
此外,还有许多非法字符,比如#!?‘é“等等。
所以,问题(S)是:
注意:我总是看到漂亮的例子,如/products/饮料/短产品名称/如何处理一些丑陋的例子^_^?
发布于 2008-11-05 22:02:43
为了可读性的原因,我自己更喜欢(你在上面加上一个下划线和_'s的虚拟go_away ),如果你要剥夺空间的话。
您可能需要尝试铸造扩展字符,例如,在可能的情况下关闭-ascii等价物,即:
ü-> u
然而,根据我的经验,实际SEO相关问题的最大问题不是URL包含所有可爱的文本,而是当人们更改链接中的文本时,所有SEO工作都变成了垃圾,因为现在索引中有了DEADLINKS。
为此,我建议堆栈溢出做什么,并有一个数字部分,它引用一个常量实体,而完全忽略文本的其余部分(并且/或在其错误时更新它)。
此外,极端的遗传性质只会使人类的可用性变差。人类讨厌长urls。复制粘贴它们糟透了,它们更容易被打破。如果你能把它细分为较低的台阶
/article/1/Some_Article_Title_Here
/article/1/Section/5/Section_Title_Here
/section/19023/Section_Title_here ( == above link ) 这样,你唯一需要做巫毒魔法的时间是,编号的文章实际上已经被删除了,这时你使用文本部分作为搜索字符串,试图找到真正的文章或类似的东西。
发布于 2008-11-05 21:34:58
我的最后一个方法是:
至于存储,我认为友好的URL应该转到数据库,并且是不可变的,毕竟是酷的城市不会变
发布于 2008-11-05 21:45:20
解决方案2是那些.有些改进是可能的,例如。为了可读性,把撇号变成虚无而不是破折号。通常,您会想要在数据库中存储标题的已处理的URL有效性版本,以及“真实的”标题,这样您就可以使用索引的选择位置来选择条目。
然而。URL路径部分中没有实际的非法字符,只要您对其进行适当的编码。例如,空格、散列或斜杠可以编码为%20、%23或%2F。通过这种方式,可以将任何字符串编码到URL部件中,这样您就可以通过实际的、不变的标题从数据库中选择它。
但是,这也有一些潜在的问题,这取决于您的web框架。例如,基于CGI的任何内容都无法区分编码的%2F和实际的/之间的区别,而且某些框架/部署可能难以处理Unicode字符。
或者,一个简单而安全的解决方案是在URL中包含主键,使用标题部分纯粹是为了使地址更好。例如:
http://www.example.com/x/category-name/subcat-name/article-name/348254863这就是为什么。亚马逊就是这么做的。它的优点是您可以更改数据库中的标题,并使带有旧标题的URL自动重定向到新的标题。
https://stackoverflow.com/questions/266719
复制相似问题