网址:Dash与下划线[关闭]


186

应该是/ about_us还是/ about-us

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


6
为什么不/ index ____ 1125.aspx(这是四个下划线,非常重要!)
ChristianDavén2011年

76
哦,拜托 我对这个问题和答案很感兴趣。该问题有52个支持,您已经关闭了?它与编程有关。网络编程。确定如何在正在开发的网站中命名目录。
凯德尔2013年


3
Google工程师的
精彩

来到这里找出来whether_domain_URLs_can_have_underscores.com
neverMind9

Answers:


31

这只是一种猜测,但似乎他们选择了人们最有可能不会使用的名称。这样,您可以使用包含连字符的名称,并且仍将下划线用作单词定界符,例如,可以将UseTwo-wayLinks转换为use_two-way_links。

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


11
合理的猜测,但事实证明,这是完全不正确的。-1。
Mark Amery

2
你有@MarkAmery的参考吗?问题围绕着Google为什么要使用下划线。如果您建议他们不要,那不是这个答案的问题,而是这个问题的问题。
billjamesdev

1
首先,根据猜测,这是很合理的。作为猜测的一部分,我会补充说程序员使用破折号作为减法,因此使用了下划线。也许程序员创建的URL遵循该约定。实际的解释会更好。标记升级为-1,没有任何备份;希望我可以给注释加上-1。
Gerard ONeill'3

2
@GerardONeill引用:Google网站管理员的这段视频:youtube.com/watch ? v=AQcSFsQyct8 。对于该视频(现在已经有6年历史了,并且可能不代表当前的现状),该视频foo_bar被视为一个单词,而foo-bar被视为两个单词-恰恰与此答案所推测的相反。
Mark Amery

2
@MarkAmery我听到您在说什么,而您实际上只是在转播不久前的其他人的话,但是听到“ foo_bar”被视为一个字时,您感到不安吗? t成为一个(因为没有带下划线的单词)。而“自尊”是英语中一个完全有效的复合词,应该作为一个整体进行搜索?
billjamesdev

192

从Google网站站长中心

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


4
Google没有解释原因?可能与他们解析地址的方式有关吗?或者可能只是最终用户的问题。
xji 2015年

9
还值得注意的是,双击某些设备并在手机上长按,可以整体选择underscored_text,而使用短划线分隔文本时,相同的操作将选择每个分隔的单词。考虑用户是否曾经尝试从网址中复制内容
Titus

1
我认为您可能在@Titus处遇到了因果关系,因为这与实际情况完全相反...英语,英语中确实有短划线,但没有下划线。
billjamesdev

我的猜测是没有区别的,至少对于Google而言,是否有“ _”,“-”或什么都没有。Google以我认为对人类最可读的方式进行了破折号
Arthur Tarasov

1
有关Google的说明,请参见youtu.be/AQcSFsQyct8。(他们使用“ _”进行精确的搜索匹配。)
Matt Ke

62

以下是一些破折号:

  • Google推荐使用下划线(下划线)(来源)。
  • 短划线是最终用户所熟悉的。
  • 短划线更容易在标准键盘上编写(无需Shift)。
  • 短划线不会隐藏在底线后面。
  • 在域名的URL中,短划线在URL上下文中感觉更原生。

53

不只是破折号和下划线:

  • 带空格的文字
  • 没有空格的文字
  • 编码的%20spaces%20in%20URL
  • underscore_means_space
  • 破折号空间
  • 加号+表示+空格
  • 骆驼香烟盒
  • PascalCase
  • “带引号的带空格文本” (以及单引号和双引号)
  • 斜杠/均值/空格
  • dot.means.space

43
欢迎使用Wild Wild Web!
甚至Mien

优雅地使用时,我非常喜欢斜杠/均值/空格。我运行的站点之一使用/ about / us以及其他各种/ about /页面。我不记得有更多主流的例子了。
Sekalf Nroc

36

Google过去从未将下划线视为单词分隔符,我认为这很疯狂,但现在显然已经了。由于这个历史,破折号是首选。即使从SEO的角度来看现在可以使用下划线,但我仍然认为破折号是最好的。

好处之一是,普通的半计算机文盲网上冲浪者更有可能在键盘上输入破折号,他们甚至可能都不知道下划线是什么。


9
您的一般半计算机不识字的网络冲浪者不太可能分辨出地址栏和搜索之间的区别。您的普通用户也比点击更有可能点击。只需说一声
阿姆斯特朗

2
Google仍不将下划线视为单词分隔符:youtube.com/watch?
v=AQcSFsQyct8

16

我以前一直都使用下划线,现在我只在网站的某些部分使用下划线,我不希望任何人直接链接下划线,js文件,css等。

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

似乎发生的另一个问题,是普通公众而不是程序员,更多的问题是,当对带下划线的超链接加下划线时,您看不到下划线。高级用户可以解决问题,但Joe Public可能不会。

不过,仍然在代码中使用下划线优先于破折号-程序员理解它们,而大多数其他人则不知道。




7

我对下划线比较满意。首先,它们与我对的常规编程经验相匹配variable_names_are_not-subtraction,其次,我相信已经提到过,单词可以带有连字符,但它们永远不会带有下划线。举一个非常愚蠢的例子,“民族国家”与“民族国家”是不同的。前者翻译成“民族国家的土地”之类的东西(想想“这里是枪战国!最好的前进方向,是吗?”),而后者则看起来像是一个有时的同义词列表。http://example.com/nation-state-country/似乎与的含义不相同http://example.com/nation-state_country/,但是,如果连字符除字词中的字符之外是分隔符/“空格”,也可以。对于实际目的,后者似乎更清楚,而对于前者,前者看起来更像该列表。


1
附带一提,Lisp或Scheme习惯上使用用破折号分隔的变量/函数名称,因为减号与其他函数一样只是函数的标识符(实际上,它们允许标识符中使用更大的字符集)。
JS

5

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

坏:

/low-budget-movies

好:

/low-budget_movies

37
我必须不同意这一点。如今,习惯只使用破折号。非程序员发现下划线在视觉上没有吸引力。第一个示例没有错。实际上,它更易于阅读。
allesklar

9
语义上您是对的,但是这种区分可能比对URL的使用更有用,而不是那么混乱。人们比“ a-b_c-d_e”更容易记住“ abcde”。
Wadih M.

有人告诉杰夫,他需要重写标签系统……

1
真?@Wadih,如果人们正确地拼写单词,那么关于low-budget_movies的事情就不难记住了。您只需要记住“低预算电影”这个词就可以了。当然,当您仅使用a,b,c,d,e时,这没有任何意义。“低预算”是一样的“低预算”的时期。
fletom 2011年

坏:/ low-budget-movies,坏:/ low-budget_movies,好:/ low-budget%20movies
Mikhail Antonov

3

我认为从用户角度来看,短划线更好,并且不会干扰SEO。

不知道下划线约定在何处或为什么开始。

知识渊博的辩论


3

我更喜欢使用破折号,因为下划线可能会在一定程度上被链接下划线遮盖。文字网址主要是为了一目了然,而不是语法正确,因此保留用于连字符的破折号的论点受到限制。

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

我还发现破折号在美学上更令人愉悦,如果这很重要的话。


2

对于最终用户,我更喜欢“关于我们”或“关于我们”而不是“ about_us”


1

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


3
/ about / us / no / seriously / this / is / it :)
布拉德·威尔逊

12
这是您的解决方案?很好,关于“ about_our_customers”或我可以想出的无数“关于”中的任何一个都可能是相关的。忽略问题!=解决方案。
billjamesdev

1

某些较早的Web托管和DNS服务器实际上在解析URL下划线时遇到了问题,因此可能在此类约定中起作用。


2
是的,但这仅在主机名中。
09年

0

我个人会避免使用所有破折号和下划线,并选择camelCasePascalCase(如果在代码中)。

Wikipedia上有关camelCase的文章解释了其起源背后的一些原因。他们等于

  1. 懒惰的程序员,他们不喜欢_键
  2. 关于可读性的潜在困惑
  3. xerox PARC上的“ Alto”​​键盘没有下划线键。

如果用户要查看字符串,那么我将不执行上述任何操作,而是使用“关于我们”。或“ AboutUs”(如果我不得不这样做的话),因为camelCase已经在某些领域(例如产品名称)广泛使用。即ThinkPad,TiVo


搜索引擎如何知道单词的开始或结束位置?
Joe Phillips'2

为什么搜索引擎不能像其他_一样处理PascalCase,无论是_,-还是:?

1
好的建议。。。这个问题是在问代码。url通常不区分大小写,通常以小写形式显示。
阿姆斯特朗

1
@dI -_- Ib仅域名不区分大小写。路径区分大小写,因此骆驼和帕斯卡样式成为可行的选择。尽管通过使用它们,您可以有效地使它们表示不区分大小写的单词。我认为,这将是该选项的最大问题。
Atli 2010年

0

URL中允许使用空格,因此您可以在链接中使用“ / about us”(尽管该编码将被编码为“ / about%20us”。但是老实说,这始终是个人喜好,因此没有真正的答案)在这里给出。

我会同意破折号可以在单词中出现的约定,因此空格应转换为下划线。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.