RESTFul API设计时,URL路径中不可以使用下划线吗?

刚看见一片文章【REST与RESTFul API最佳实践】原文

其中:

clipboard.png

第4点,是出于什么原因?URL里使用下划线有什么问题吗?

阅读 37k
5 个回答

完全可以使用,之所以有些时候说下划线(_)不如中划线(-),主要是基于SEO考量

比较下面两个URL:

  • /api/hello-there

  • /api/hello_there

某些搜索引擎提取关键字时,会把中划线(-)视为单词分隔符,从而得出完全不同的关键字

  • “hello”,“there”,“hello there”

  • “hello_there”,“hellothere”

但是但是但是,既然已经是API了,还有必要做SEO吗

先说结论: 你是做API么,如果是做API,两个符号都无所谓。

为什么会推荐用 -

-叫做分词符,顾名思义用作分开不同词的。这个最佳实践来自于针对Google为首的SEO(搜索引擎优化)需要,Google搜索引擎会把url中出现的-当做空格对待,这样url "/it-is-crazy" 会被搜索引擎识别为与“it","is","crazy"关键词或者他们的组合关键字相关。
当用户搜索”it","crazy", "it is crazy"时,很容易检索到这个url,排名靠前。

_这个符号如果出现在url中,会自动被Google忽略,“/it_is_crazy”被识别为与关键词 “itIsCrazy”相关。

一定要用 -吗?

不一定! 如果你是在国内用,你用什么都无所谓,
连百度自己的链接都用的是 _
而我们在国内做SEO主要针对的百度搜索引擎,你觉得有必要一定要用推荐的么?
可以认为是业内习惯,项目内保持一种写法就可以了,没有强求。

_没什么问题,之所以建议使用-可能是出于以下原因:

  • 在很久之前,Google的建议是使用-,而不要使用_,出于什么原因,没有解释

  • 使用-对用户来说,看起来更加友好一些

  • 在键盘上-显然比_更加容易敲出来,不信你试试

参考URLs: Dash vs. Underscore

可以用,但一般不建议这么干,因为假如单词长了下划线看着不是那么直观,用-容易区分而且直观。其实就一规范要求。

URL使用下划线本身是没有问题的,但使用连字符可以提高我们网站的搜索引擎排名。

如果你稍微了解正则表达式,应该知道 /w表示单词字符,包括a-z、A-Z、0-9,以及下划线
举个例子,hello-world 将认为是俩个单词,hello_world将认为是一个单词(双击单词查看选中效果)。
所以当向搜索引擎提交链接时

如果网站的链接包含hello-world,搜索引擎收录的索引为hello 和 world;

如果网站的链接包含hello_world,搜索引擎收录的索引为hello_world。

自然是分开的单词更利用搜索。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进