URL路由:创建友好URL时处理空格和非法字符

Arm*_*est 8 url routing character

我已经看过很多关于URL路由的讨论,以及很多很棒的建议......但在现实世界中,我没有看过的一件事是:

  1. 使用空格和非法字符创建友好URL
  2. 查询数据库

假设你正在建立一个医疗网站,里面有文章类别和可选的子类别.(1对多).(可以使用任何一个例子,但医学领域有很多长话)


示例类别/子/文章结构:

  1. 您的一般健康(类别)
    • 自然健康(子类别)
      1. 你身体的免疫系统以及为什么需要帮助.(文章)
      2. 植物和草药真的是解决方案吗?
      3. 我应该吃强化食品吗?
    • 顺势疗法
      1. 什么是顺势疗法药?
    • 健康饮食
      1. 你应该每天喝10杯咖啡吗?
      2. 有机蔬菜值得吗?
      3. 汉堡王是邪恶的吗?
      4. "法式咖啡馆"或美式咖啡更健康吗?
  2. 疾病和病症(类别)
    • 自身免疫障碍(子类别)
      1. 人的头号杀手是一种疾病
      2. 如何获得帮助
    • 遗传条件
      1. 怀孕前预防脊柱裂.
      2. 你是否倾向于活很长时间?
  3. FooBar博士的个人建议(分类)
    1. 我对草药和自然疗法的看法(文章 - 没有子类别)
    2. 你为什么要关心自己的健康?
    3. 可以正确饮食并保持良好的饮食习惯.
    4. 不流血的手术成熟了吗?

在这样的结构中,如果你去,你将会有一些LOOONG网址:/ {Category}/{subcategory}/{Article Title}

此外,还有很多非法字符,比如#!?'é"等

因此,问题是:

  1. 你会如何处理非法角色和空间?(优点和缺点?)
  2. 你会处理从数据库中获取此信息吗?
    • 换句话说,您是否相信数据库可以找到项目,传递标题,或者拉出所有标题并在代码中找到密钥以获取密钥以传递给数据库(两次调用数据库)?

注意:我总是看到漂亮的漂亮例子,如/ products/beverages/Short-Product-Name /如何处理一些丑陋的例子^ _ ^

Ken*_*ric 4

如果您要删除空格,我本人更喜欢 _ 到 - 出于可读性原因(您在其上加下划线并且实际上_是 go_away )。

\n\n

您可能想尝试将扩展字符(即 \xc3\xbc )转换为尽可能接近的 ASCII 等效字符,即:

\n\n

\xc3\xbc -> u

\n\n

然而,根据我的经验,实际SEO 相关问题的最大问题不是 URL 包含所有可爱的文本,而是当人们更改链接中的文本时,您所有的 SEO 工作都会变成垃圾,因为您现在在索引。

\n\n

为此,我建议 stackoverflow 做什么,并有一个引用常量实体的数字部分,并完全忽略文本的其余部分(和/或在错误时更新它)

\n\n

此外,严重的遗传性只会导致人类的可用性较差。人类讨厌长网址。复制粘贴它们很糟糕,而且更容易损坏。如果你可以将其细分为较低的层,即

\n\n
/article/1/Some_Article_Title_Here\n/article/1/Section/5/Section_Title_Here\n/section/19023/Section_Title_here  ( == above link ) \n
Run Code Online (Sandbox Code Playgroud)\n\n

这样,您唯一需要使用巫毒魔法的时间是当编号的文章实际上被删除时,此时您使用文本部分作为搜索字符串来尝试查找真正的文章或类似的内容。

\n