在url中使用连字符还是下划线是更好的惯例?

应该是/about_us还是/about-us?

从可用性的角度来看,我个人认为/about-us对最终用户来说要好得多,而谷歌和大多数其他网站(以及javascript框架)使用下划线命名模式。只是风格的问题吗?破折号有兼容性问题吗?


我认为从用户的角度来看,破折号更好,它不会干扰SEO。

不确定在哪里或为什么开始使用下划线。

更有知识的辩论


这只是一个猜测,但似乎他们选择了一个人们最不可能在名字中使用的名字。通过这种方式,您可以拥有一个包含连字符的单词的名称,并且仍然使用下划线作为单词分隔符,例如UseTwo-wayLinks可以转换为use_two-way_links。

在您的示例中,/about-us将是一个名为“about-us”的连字符目录(如果存在这样的单词,/about_us将是一个名为“about us”的两个单词短语的目录,转换为一个非白人字符字符串。


就我个人而言,我会避免使用about-us或about_us,而使用about。


I'm more comfortable with underscores. First of all, they match in with my regular programming experience of variable_names_are_not-subtraction, second of all, and I believe this was mentioned already, words can have hyphens, but they do not ever have underscores. To pick a really stupid example, "Nation-state country" is different from "nation state country". The former translates something like "the land of nation-states" (think "this here is gun country! Best move along, y'hear?"), whereas the latter looks like a list of sometime-synonyms. http://example.com/nation-state-country/ doesn't appear to mean the same as http://example.com/nation-state_country/, and yet, if hyphens are delimiters/"space"s in addition to characters in words, it can. The latter seems more clear as to the actual purpose, whereas the former looks more like that list, if anything.


一些较老的web主机和DNS服务器实际上在解析url的下划线时存在问题,所以这可能是这些约定的一部分。


Jeff对此有一些想法:https://blog.codinghorror.com/of-spaces-underscores-and-dashes/

两者都有缺点。我建议你选择一个并保持一致。


下划线替换不允许有空格的地方。破折号(连字符)可以是单词的一部分,因此将单词与已经包含连字符的连字符连接起来是丑陋的/令人困惑的。

Bad:

/low-budget-movies

好:

/low-budget_movies

对于最终用户视图,我更喜欢“about-us”或“about us”,而不是“about_us”


我个人会避免所有的破折号和下划线,如果是在代码中,我会选择驼峰式或帕斯卡式。

维基百科上关于camelCase的文章解释了它起源背后的一些原因。它们总计为

懒惰的程序员不喜欢 到达_键 潜在的混淆 可读性 施乐PARC的“Alto”键盘 没有下划线键。

如果用户要看到字符串,那么我不会做以上任何一件事,如果我不得不使用“关于我们”或“关于我们”,因为骆驼的情况已经蔓延到一些领域的常见用法,如产品名称。比如ThinkPad, TiVo


我过去一直使用下划线,现在我只在网站的一部分使用它们,我不希望任何人直接链接,js文件,css,…等。

从SEO的角度来看,破折号似乎是首选的处理方式,对于详细的解释,来自马嘴http://www.mattcutts.com/blog/dashes-vs-underscores/。

另一个常见的问题是,当一个带下划线的超链接被加下划线时,你看不到下划线。高级用户可以解决这个问题,但Joe Public可能不会。

在代码中仍然使用下划线而不是破折号——程序员理解它们,而大多数人不理解。


URL中允许有空格,所以你可以在链接中使用“/about us”(尽管这将被编码为“/about%20us”)。但老实说,这永远是个人偏好,所以这里没有真正的答案。

我会按照惯例,破折号可以出现在单词中,所以空格应该转换为下划线。


谷歌过去没有将下划线作为单词分隔符,我认为这很疯狂,但现在显然有了。由于这段历史,破折号是首选。尽管从搜索引擎优化的角度来看,下划线现在是允许的,但我仍然认为破折号是最好的。

一个好处是,一般不懂电脑的上网用户更有可能在键盘上输入破折号,他们甚至可能不知道下划线是什么。


搜索引擎优化专家Jim Westergren在2005年从严格的搜索引擎优化角度对此进行了测试,得出的结论是+(+)实际上是最好的单词分隔符。然而,这似乎并不合理,可能是由于搜索引擎算法的错误。对于可读性和SEO,他推荐使用-(破折号)。


我更喜欢破折号,因为下划线可能在一定程度上被链接下划线所掩盖。文本url主要是为了一眼就能识别出来,而不是为了语法正确,所以保留破折号用于连字符的论点是有限的。

文本URL的准确性很重要的是在将其读给某人时,在这种情况下,您不希望将下划线与空格混淆(反之亦然)。

我还发现破折号更美观,如果这有意义的话。


不只是破折号和下划线:

带空格的文本 textwithoutspaces 编码% 20空间% 20 % 20的url underscore_means_space dash-means-space + +是+空间 camelCase PascalCase “带空格的引用文本”(以及单引号和双引号) 斜杠/手段/空间 dot.means.space


来自谷歌网站管理员中心

考虑在简历中使用标点符号 url。URL http://www.example.com/green-dress.html 对我们更有用吗 http://www.example.com/greendress.html。 我们建议使用连字符(-) 而不是在你的 url。


以下是使用破折号的几点建议:

谷歌建议在下划线上使用破折号。 终端用户更熟悉破折号。 破折号更容易在标准键盘上书写(不需要Shift键)。 破折号不会隐藏在下划线后面。 破折号在url的上下文中感觉更原生,因为它们在域名中是被允许的。


更好的利用。- /作为分隔符,因为_似乎不是分隔符。

http://www.sistrix.com/blog/832-how-long-may-a-linktext-be.html