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