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

187

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

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

lubos hasko
источник
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", преобразованным в одну строку). небелых персонажей.

billjamesdev
источник
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, я все еще думаю, что тире лучше.

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

MrZebra
источник
9
Ваш средний полу-компьютерный неграмотный веб-серфер вряд ли сможет определить разницу между адресной строкой и поиском. Ваш средний пользователь также НАМНОГО более вероятен, чем напечатает. Just sayin '
Armstrongest
2
Google по-прежнему НЕ рассматривает подчеркивание как разделитель слов: youtube.com/watch?v=AQcSFsQyct8
Sembiance
16

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

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

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

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

seanb
источник
12

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

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

SD
источник
+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
jpeacock
источник
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.

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

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

Geoff
источник
3

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

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

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

Эндрю Ингрэм
источник
2

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

Krirk
источник
1

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

RodgerB
источник
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». Но, честно говоря, это всегда будет личным предпочтением, поэтому реального ответа нет) быть здесь

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


источник