网址:Dash vs. Underscore

lub*_*sko 178 url seo naming-conventions

应该是/ about_us还是/ about-us

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

Jam*_*ruk 185

来自Google Webmaster Central

请考虑在您的网址中使用标点符号.网址 http://www.example.com/green-dress.html 对我们来说比http://www.example.com/greendress.html更有用 .我们建议您在网址中使用连字符( - )而不是下划线(_).

  • 另外值得注意的是,通过双击一些设备并长按手机,整体可以选择underscored_text,而使用破折号分隔的文本,相同的动作选择每个分开的单词.想想用户是否会尝试从网址中复制出来的东西 (8认同)
  • 谷歌没解释原因?据说它与他们解析地址的方式有关?或者可能只是最终用户问题. (4认同)
  • 我认为你可能在那里遇到了因果循环@Titus,因为这与实际的……英语完全相反,英语中确实有破折号,但没有下划线。 (3认同)

Ema*_*sev 56

以下是支持破折号的几点:

  • Google推荐使用破折号(来源).
  • 最终用户更熟悉破折号.
  • 在标准键盘上更容易编写破折号(无需Shift).
  • 破折号不会隐藏在下划线后面.
  • Dashes在URL的上下文中感觉更原生,因为它们在域名中是允许的.

  • 哦,破折号的另一个好处是:当您用英语读出 URL 时,“破折号”是一个音节,而“下划线”是三个音节。 (2认同)

Mar*_*ock 52

它不仅仅是短划线与下划线:

  • 带空格的文字
  • textwithoutspaces
  • 编码%20spaces%20英寸%20URL
  • underscore_means_space
  • 划线装置空间
  • 加+指+空间
  • 骆驼香烟盒
  • PascalCase
  • "引用带空格的文字" (单引号与双引号)
  • 斜线/装置/空间
  • dot.means.space

  • 欢迎来到Wild Wild Web! (41认同)

MrZ*_*bra 36

谷歌过去并没有将下划线视为一个单词分隔符,我认为这很疯狂,但显然现在确实如此.由于这段历史,破折号是首选.尽管从SEO的角度来看现在允许下划线,但我仍然认为短划线是最好的.

一个好处是,你的普通半计算机 - 文盲网络冲浪者更有可能在键盘上输入短划线,他们甚至可能不知道下划线是什么.

  • 您的普通半计算机文盲网络冲浪者不太可能分辨地址栏和搜索之间的区别.您的普通用户也更有可能点击而不是打字.只是在说' (9认同)
  • Google仍然不会将下划线视为单词分隔符:http://www.youtube.com/watch?v = AQcSFsQyct8 (2认同)

bil*_*dev 31

这只是猜测,但似乎他们选择了人们最不可能在名称中使用的那个.这样,您可以使用包含带连字符的单词的名称,并仍使用下划线作为单词分隔符,例如,UseTwo-wayLinks可以转换为use_two-way_links.

在您的示例中,/ about-us将是一个名为带连字符的单词"about-us"的目录(如果存在这样的单词,/ about_us将是一个名为双字短语"about us"的目录,转换为单个字符串非白色字符.

  • 合理的猜测,但事实证明,完全不真实.-1. (10认同)
  • 你有@MarkAmery的参考吗?问题围绕着为什么谷歌会使用下划线.如果你建议他们不这样做,那不是这个答案的问题,而是问题的问题. (2认同)
  • @GerardONeill 引文:谷歌网站管理员的这段视频:https://www.youtube.com/watch?v=AQcSFsQyct8。根据该视频(不可否认,现在 6 岁了,可能不代表当代现状),`foo_bar` 被视为一个词,而 `foo-bar` 被视为两个词 - 与这个答案推测的正好相反的是案件。 (2认同)
  • @MarkAmery 我听到你在说什么,而且你真的只是在转述不久前其他人的话,但是听到“foo_bar”被视为一个词,当它确实可以做到时,你会不会感到不安t be one(因为没有带下划线的单词)。而“自尊”在英语中是一个完全有效的复合词,应该作为单个实体进行搜索? (2认同)

sea*_*anb 14

我曾经一直使用下划线,现在我只将它们用于我不希望任何人直接链接的网站部分,js文件,css,...等.

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

与公共程序员相比,似乎发生的另一个问题是,当带有下划线的超链接带有下划线时,您无法看到下划线.高级用户将会解决这个问题,但Joe Public可能不会.

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


s d*_*s d 11

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

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


Chr*_*vén 8

搜索引擎优化大师Jim Westergren在2005年从严格的SEO角度对此进行了测试,并得出结论+(加号)实际上是最好的单词分隔符.但是,这似乎并不合理,可能是由于搜索引擎算法中存在错误.他建议 - (破折号)兼容可读性和SEO.


Dev*_*rre 7

我更喜欢下划线.首先,它们与我的常规编程经验相匹配variable_names_are_not-subtraction,其次,我相信这已被提及,单词可以有连字符,但它们没有下划线.选择一个非常愚蠢的例子,"民族国家"与"民族国家"不同.前者翻译的是"民族国家的土地"(想想"这里是枪支的国家!最好的移动,是的,你好吗?"),而后者看起来像是一些有时同义词的列表.http://example.com/nation-state-country/似乎并不意味着相同http://example.com/nation-state_country/,但是,如果连字符是分隔符/"空格"以及单词中的字符,它可以.对于实际目的,后者似乎更清楚,而前者看起来更像是那个列表,如果有的话.

  • 顺便说一句,像 Lisp 或 Scheme 这样的语言通常使用用破折号分隔的变量/函数名称,因为减号只是函数的标识符,就像任何其他标识符一样(事实上,它们允许标识符中使用更大的字符集)。 (2认同)

jpe*_*ock 5

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

坏的:

/low-budget-movies
Run Code Online (Sandbox Code Playgroud)

好的:

/low-budget_movies
Run Code Online (Sandbox Code Playgroud)

  • 我不得不不同意这一点。如今,习惯上只使用破折号。非程序员发现下划线在视觉上没有吸引力。第一个例子没有错。其实读起来更友好。 (38认同)
  • 从语义上讲,您是对的,但这种区别可能更令人困惑,而不是在 URL 中使用时有用。人们更可能记住“abcde”而不是“a-b_c-d_e”。 (9认同)