URL 里的目录名或文件名,需要分隔单词的时候,应该用连字符还是下划线?
就比如说这篇博文吧,用哪个当网址更好呢?https://blog.gltjk.com/diary/url-dash-or-underscore.html
还是 https://blog.gltjk.com/diary/url_dash_or_underscore.html
?
自然语言
英语里分隔两个单词,最自然的分隔符就是空格了。可惜在网址里会被编码成 %20
,可读性会大大降低,所以不推荐空格。然后就有了两个方案,一个是连字符「-
」,另一个是下划线「_
」。
从语言角度上说,下划线比连字符更好,因为英语里本来就有连字符。比如,如果有两个标题要转成网址,「The Mid-Autumn Festival」和「The Mid Autumn Festival」,用连字符的话二者会都变成 the-mid-autumn-festival
,而用下划线的话会分别变成 the_mid-autumn_festival
和 the_mid_autumn_festival
——前者无法区分,而后者能清楚地体现出差别。
事实上,维基百科就一直坚持用下划线的方案(当然他们还区分大小写)。比如英文维基百科的中秋节词条,网址就是这样的:https://en.wikipedia.org/wiki/Mid-Autumn_Festival
。
互联网
然而,除了维基百科等「异类」,互联网似乎更偏爱连字符。无数的例子都是用连字符来分割的。谷歌在其 Search Console 帮助里明确说明,建议在网址里使用连字符,而非下划线。阮一峰的《中文技术文档的写作规范》也以连字符为正确,以下划线为错误。
连字符优于下划线的理由之一,就是看起来更熟悉,打起来更方便——这并非没有道理。人们在自然语言里见到连字符的机会比下划线多得多(后者真的有机会吗?),键盘录入时连字符也是一件录入,而下划线需要 Shift 键的帮助。
然而正因为自然语言里已经有了连字符了,又用连字符来代替空格才会有问题。而至于录入,我想问,都 8102 年了,还有多少人会手打完整的网址?
这也是为什么我一直坚持使用下划线…… Until now.
SEO
压倒下划线骆驼的最后一根稻草,是传说中的 SEO。原来在谷歌爬虫的眼里,下划线根本不是空格……谷歌的前软件工程师 Matt Cutts 还专门在 YouTube 上发了个视频解释具体的原理。
我自己上谷歌试了一下,果然之前用下划线发的博文,必须要也加上下划线才能搜到,而加空格的搜不到。
好吧,那我全改了吧。从此拥抱连字符,抵制下划线……
既然已经决定了,就要自我 justify 一下。用连字符代替空格诚然无法区分原来是空格还是真连字符,可我去掉其他符号、大写改为小写的做法不也同样造成了无法区分的情况么?更何况,我哪来那么多文章要写,真以为自己是维基百科啊🤣
所以,我就真的全改了。反正之前发的文章也不多,来看我博客的人更少了,就一起追溯修改了。
嗯,也好。