URL: Dash vs. Underscore [закрыто]


187

Это должно быть / about_us или / about-us ?

С точки зрения удобства использования, я лично думаю, что / about-us намного лучше для конечного пользователя, хотя Google и большинство других веб-сайтов (и фреймворки javascript) используют шаблон именования подчеркивания. Это просто вопрос стиля? Есть ли проблемы с совместимостью с тире?


6
Почему бы не /index____1125.aspx (это четыре подчеркивания, очень важно!)
Кристиан Давен

77
О, давай. Я заинтересован в этом вопросе и в ответах. У вопроса 52 вопроса, а вы его закрыли? Это о программировании. Веб программирование. Решить, как назвать каталоги на веб-сайте, который разрабатывается.
Кейделл


4
Хорошее видео объяснение от инженера Google: youtube.com/watch?v=AQcSFsQyct8
JohnB

Пришел сюда, чтобы узнать whether_domain_URLs_can_have_underscores.com.
neverMind9

Ответы:


30

Это всего лишь предположение, но кажется, что они выбрали тот, который люди, скорее всего , не будут использовать в имени. Таким образом, вы можете иметь имя, содержащее дефисное слово, и при этом использовать подчеркивание как разделитель слов, например UseTwo-wayLinks можно преобразовать в use_two-way_links.

В вашем примере / about-us будет каталогом с именем дефиса "about-us" (если такое слово существует, а / about_us будет каталогом с именем из двух слов "about us", преобразованным в одну строку). небелых персонажей.


11
Разумное предположение, но, как оказалось, совершенно не соответствует действительности. -1.
Марк Эмери

2
У вас есть ссылка на это @MarkAmery? Вопрос сводился к тому, почему Google будет использовать подчеркивания. Если вы предлагаете, что они этого не делают, это не проблема этого ответа, а проблема вопроса.
billjamesdev

1
Во-первых, как и предполагалось, довольно разумно. Я бы добавил, как часть предположения, что программисты используют черту как вычитание, поэтому используется подчеркивание; возможно, URL, созданные программистами, следуют этому соглашению. Фактическое объяснение было бы лучше, хотя. Марк увеличивается с -1 без какой-либо резервной копии; Хотел бы я дать комментарий -1.
Джерард ONeill

2
@GerardONeill цитата: это видео от Google для веб-мастеров: youtube.com/watch?v=AQcSFsQyct8 . Согласно этому видео (по общему признанию, сейчас 6 лет и, возможно, не представляющему современное статус-кво), foo_barоно рассматривается как одно слово, в то время foo-barкак рассматривается как два слова - как раз противоположное тому, что предполагает этот ответ.
Марк Амери

2
@MarkAmery Я слышу, что вы говорите, и вы на самом деле просто передаете слова других людей некоторое время назад, но разве вас не раздражает, когда вы слышите, что «foo_bar» трактуется как слово, когда оно буквально может это сделать? быть одним (так как нет слов с подчеркиванием). Принимая во внимание, что «самооценка» является совершенно допустимым составным словом в английском языке и должна быть доступна для поиска как единое целое?
billjamesdev

193

От Google Веб-мастер Централ

Попробуйте использовать пунктуацию в своих URL. URL http://www.example.com/green-dress.html для нас гораздо полезнее, чем http://www.example.com/greendress.html . Мы рекомендуем использовать дефисы (-) вместо подчеркивания (_) в ваших URL.


4
Google не объяснил почему? Возможно, это как-то связано с их способом анализа адресов? Или, возможно, это проблема конечного пользователя.
xji

9
Также стоит отметить, что underscored_text можно выбрать в целом двойным щелчком мыши на некоторых устройствах и долгим нажатием на мобильных устройствах, тогда как с разделенным тире текстом одни и те же действия выбирают каждое отдельное слово. Подумайте о том, попытается ли пользователь когда-нибудь скопировать что-нибудь из URL
Titus

1
Я думаю, что вы, возможно, попали в цикл причинности @Titus, поскольку это полностью противоречит фактическому ... английскому, который имеет черточки в словах, но не подчеркивания.
billjamesdev

я думаю, что нет никакой разницы, по крайней мере для Google, есть ли '_', '-' или ничего. Google пошел с тем, что, я полагаю, является наиболее читабельным для человека, чертой
Артур Тарасов

1
См. Youtu.be/AQcSFsQyct8 для объяснения Google. (Они использовали «_» для точного поиска соответствия.)
Мэтт Ке

62

Вот несколько моментов в пользу тире:

  • Тире рекомендуются Google над подчеркиванием ( источник ).
  • Тире больше знакомы конечному пользователю.
  • Тире легче писать на стандартной клавиатуре (Shift не требуется).
  • Черточки не прячутся за подчеркиванием.
  • Тире кажутся более естественными в контексте URL, поскольку они разрешены в доменных именах.

53

Это не просто черта против подчеркивания:

  • текст с пробелами
  • textwithoutspaces
  • кодированный% 20spaces% 20in% 20URL
  • underscore_means_space
  • Dash-средства-пространство
  • плюс + означает + пробел
  • верблюжьего
  • PascalCase
  • "цитируемый текст с пробелами" (и одинарная кавычка против двойной кавычки)
  • слэш / средства / пространство
  • dot.means.space

43
Добро пожаловать в Wild Wild Web!
Даже Mien

Я очень люблю слэш / средства / пространство при элегантном использовании. Один из сайтов, которые я запускаю, использует / about / us наряду с различными другими страницами / about /. Я не припоминаю, чтобы я видел еще какие-то примеры.
Sekalf Nroc

36

Google не рассматривал подчеркивание как разделитель слов в прошлом, что, на мой взгляд, было довольно сумасшедшим, но, очевидно, так оно и есть сейчас. Из-за этой истории тире являются предпочтительными. Несмотря на то, что подчеркивание теперь допустимо с точки зрения SEO, я все еще думаю, что тире лучше.

Одним из преимуществ является то, что ваш средний полуграмотный неграмотный веб-серфер, скорее всего, сможет набрать тире на клавиатуре, они могут даже не знать, что такое подчеркивание.


9
Ваш средний полу-компьютерный неграмотный веб-серфер вряд ли сможет определить разницу между адресной строкой и поиском. Ваш средний пользователь также НАМНОГО более вероятен, чем напечатает. Just sayin '
Armstrongest

2
Google по-прежнему НЕ рассматривает подчеркивание как разделитель слов: youtube.com/watch?v=AQcSFsQyct8
Sembiance

16

Раньше я все время использовал подчеркивания, теперь я использую их только для тех частей веб-сайта, на которые я не хочу, чтобы кто-либо имел прямые ссылки, js-файлы, css, ... и т. Д.

С точки зрения SEO, для подробного объяснения предпочтение отдается черточкам из подробностей из уст лошадей http://www.mattcutts.com/blog/dashes-vs-underscores/ .

Другая проблема, которая возникает, скорее, для широкой публики, чем для программистов, состоит в том, что, когда гиперссылка с подчеркиванием подчеркнута, вы не можете увидеть подчеркивание. Опытные пользователи будут работать, но Джо Паблик, вероятно, не будет.

Тем не менее, в коде по-прежнему используются подчеркивания, а не тире - программисты понимают их, большинство других - нет.


12

У Джеффа есть некоторые мысли по этому поводу : https://blog.codinghorror.com/of-spaces-underscores-and-dashes/

Есть недостатки к обоим. Я бы посоветовал вам выбрать один и быть последовательным.


+1, потому что он упоминает, как Google ожидает этого, что, я думаю, более важно, чем то, как это выглядит.
TJ L

8

Гуру SEO Джим Вестергрен проверил это в 2005 году со строгой точки зрения SEO и пришел к выводу, что + (плюс) на самом деле был лучшим разделителем слов. Однако это не кажется разумным и может быть связано с ошибкой в ​​алгоритмах поисковых систем. Он рекомендует - (тире) для удобства чтения и SEO.


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. Люди чаще запоминают «abcde», чем «a-b_c-d_e».
Вадих М.

Кто-то говорит Джеффу, что ему нужно переписать систему тегов ...

1
В самом деле? @ Вади, если люди правильно пишут слова, нет ничего сложного для запоминания low-budget_movies. Вам не нужно помнить это больше, чем слова «малобюджетные фильмы». Конечно, когда вы просто используете a, b, c, d, e, тогда это не имеет смысла. «Малобюджетный» - это не то же самое, что «малобюджетный», точка.
Флетом

плохо: / малобюджетные фильмы, плохо: / low-budget_movies, хорошо: / низкобюджетные% 20movies
Михаил Антонов

3

Я думаю, что черта лучше с точки зрения пользователя, и это не будет мешать SEO.

Не уверен, где или почему началось соглашение о подчеркивании.

Немного более знающих дебатов


3

Я предпочитаю тире на том основании, что подчеркивание может быть в некоторой степени скрыто подчеркиванием ссылки. Текстовые URL-адреса предназначены, прежде всего, для быстрого распознавания, а не для грамматической корректности, поэтому аргумент для сохранения тире для использования в словах с переносами ограничен.

Точность текстового URL важна при чтении его кому-то, и в этом случае вы не хотите путать подчеркивание с пробелом (или наоборот).

Я также нахожу штрихи более эстетичными, если это что-то значит.


2

Для конечного пользователя я предпочитаю "about-us" или "about us", а не "about_us"


1

Лично я бы не использовал about-us или about_us, а просто использовал about.


3
/ о / нас / нет / серьезно / это / есть / это :)
Брэд Уилсон

13
а это ваше решение? Хорошо, как насчет "about_our_customers" или любого из множества других "abouts", которые я мог бы придумать, которые могут иметь отношение к делу. Игнорирование проблемы! = Решение.
billjamesdev

1

На некоторых старых веб-хостингах и DNS-серверах действительно возникают проблемы с анализом нижних подчеркиваний URL-адресов, что может сыграть свою роль в таких соглашениях.


2
Да, но это только в именах хостов.
Анирван

0

Лично я бы избежать всех дефис и подчеркивание и выбрать верблюжьего или PascalCase , если его в коде.

Статья в Википедии о camelCase объясняет некоторые причины, по которым она возникла. Они составляют

  1. Ленивые программисты, которым не нравилось тянуться к ключу _
  2. Потенциальная путаница по поводу читабельности
  3. Клавиатура "Alto" в xerox PARC, у которой не было клавиши подчеркивания.

Если пользователь увидит строку, то я не сделаю ничего из вышеперечисленного и использую «О нас». или "AboutUs", если бы мне пришлось, поскольку camelCase распространился на обычное использование в некоторых областях, таких как названия продуктов. т.е. ThinkPad, TiVo


Как поисковая система узнает, где слово начинается или заканчивается?
Джо Филлипс

Почему поисковая система не работает с PascalCase так же, как с любым другим разделителем, будь то _, - или: в этом отношении?

1
Хороший совет ... этот вопрос спрашивал о коде. URL-адреса [обычно] не чувствительны к регистру и обычно отображаются в нижнем регистре.
Армстронг

1
@dI -_- Ib Только доменные имена не чувствительны к регистру. Путь чувствителен к регистру, что делает верблюжий и паскальский стиль приемлемым вариантом. Хотя, используя их, вы фактически делаете слова, которые они представляют, без учета регистра. Это будет самой большой проблемой с этим вариантом, на мой взгляд.
Атли

0

В URL разрешены пробелы, поэтому вы можете просто использовать «/ about us» в ссылке (хотя это будет закодировано как «/ about% 20us». Но, честно говоря, это всегда будет личным предпочтением, поэтому реального ответа нет) быть здесь

Я бы согласился с тем, что черточки могут появляться в словах, поэтому пробелы должны быть преобразованы в подчеркивания.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.