我看过很多关于 URL 路由的讨论,以及很多很棒的建议……但在现实世界中,我没有看到讨论过的一件事是:
- 创建带有空格和非法字符的友好 URL
- 查询数据库
假设您正在构建一个 Medical 站点,其中包含带有Category和可选Subcategory的文章。(1对许多)。(可以用任何例子,但医学领域有很多长词)
示例类别/子/文章结构:
- 您的一般健康状况(类别)
- 自然健康(子类别)
- 您身体的免疫系统及其需要帮助的原因。(文章)
- 植物和草药真的是解决方案吗?
- 我应该吃强化食品吗?
- 顺势疗法
- 什么是顺势疗法药物?
- 健康饮食
- 你应该每天喝10杯咖啡吗?
- 有机蔬菜值得吗?
- 汉堡王® 是邪恶的吗?
- “法式咖啡”还是美式咖啡更健康?
- 自然健康(子类别)
- 疾病和状况(类别)
- 自身免疫性疾病(子类别)
- 人类的第一大杀手是某种疾病
- 如何获得帮助
- 遗传条件
- 怀孕前预防脊柱裂。
- 你有长寿的倾向吗?
- 自身免疫性疾病(子类别)
- FooBar博士的个人建议(分类)
- 我对草药和自然疗法的看法(文章 - 无子类别)
- 为什么要关心自己的健康?
- 有可能吃得好并有良好的饮食习惯。
- 无血手术已经成熟了吗?
在这样的结构中,如果你去的话,你将有一些LOOONG URL:/{Category}/{subcategory}/{Article Title}
此外,还有许多非法字符,如#! ? 'é”等。
所以,问题是:
- 您将如何处理非法字符和空格?(优点和缺点?)
- 你会处理从数据库中获取这个吗
- 换句话说,您会相信数据库找到项目、传递标题,还是提取所有标题并在代码中找到密钥以获取传递给数据库的密钥(对数据库的两次调用)?
注意:我总是看到漂亮漂亮的例子,比如 /products/beverages/Short-Product-Name/ 如何处理一些丑陋的例子 ^_^