Человеко-читаемые URL-адреса: желательно иерархические?

В теперь перенесенном вопросе о читаемых человеком URL-адресах я позволил себе описать небольшое хобби. -конь моя:

Когда я сталкиваюсь с URL-адресами вроде http://www.example.com/product/123/subpage/456.html , я всегда думаю, что это попытка создания значимой иерархической URL-адреса, которые, однако, не являются полностью иерархическими. Я имею в виду, что вы должны иметь возможность вырезать по одному уровню за раз . В приведенном выше описании У URL есть два нарушения этого принципа:

  1. / product / 123 - это один фрагмент информации, представленный на двух уровнях. Правильнее было бы представить его как / product: 123 (или любой другой разделитель, который вам нравится)
  2. / subpage , скорее всего, не является сущностью сама по себе (то есть вы не можете подняться один уровень из 456.html как http://www.example.com/product/123/subpage - это «ничего»).

Поэтому я нахожу более правильным будет следующее:

 http://www.example.com/product:123/456.html

Здесь вы всегда можете перейти на один уровень за раз:

  • http://www.example.com/product:123/456.html - Дополнительная страница
  • http://www.example.com/product:123 - Страница продукта
  • http://www.example.com/ - Корень

После та же философия, следующее будет иметь смысл [и предоставить дополнительную ссылку на список продуктов]:

 http://www.example.com/products/123/456.html

Где:

  • http://www.example.com/products/123/456.html - Подстраница
  • http://www.example.com/products/123 - Страница товара
  • http://www.example.com/products - Список товаров
  • http://www.example.com/ - Корневой

Мой основной Мотивация для этого подхода заключается в том, что если каждый «элемент пути» (разделенный / ) является автономным 1 , вы всегда сможете перейти к «родительскому элементу», просто удалив последний элемент URL. Это то, что я (иногда) делаю в своем файловом проводнике, когда хочу перейти в родительский каталог. Следуя той же логике, пользователь (или поисковая система / сканер) может сделать то же самое. Думаю, довольно умно.

С другой стороны (и это важная часть вопроса): Хотя я никогда не могу предотвратить попытки пользователя получить доступ к URL-адресу, который он сам ампутировал, я ошибочно утверждаю (и уважаю), что поисковая система может сделать то же самое? То есть, разумно ли ожидать, что нет поисковая система (или на самом деле: Google) попытается получить доступ к http://www.example.com/product/123/subpage (пункт 2 выше)? (Или я действительно здесь учитываю только человеческий фактор?)

Это не вопрос личных предпочтений. Это технический вопрос о том, что я могу ожидать от сканера / индексатора и в какой степени я должен учитывать нечеловеческие манипуляции с URL при разработке URL.

Кроме того, структурная «глубина» http: // www .example.com / product / 123 / subpage / 456.html равно 4, а http://www.example.com/products/123/456.html - только 3. Ходят слухи, что эта глубина влияет на рейтинг в поисковых системах. По крайней мере, так мне сказали. (Теперь очевидно, что SEO - это , а не то, о чем я знаю больше всего.) Верно ли это (все еще?): влияет ли иерархическая глубина (количество каталогов) на рейтинг поиска?

Итак , технически ли моя "догадка" верна, или я должен тратить свое время на что-нибудь еще?


Пример: Делаю (почти) правильно
Старый добрый SO понимает это почти правильно. Показательный пример: профили, например, http://stackoverflow.com/users/52162 :

  • http://stackoverflow.com/users/52162 - Один профиль
  • http : //stackoverflow.com/users - Список пользователей
  • http://stackoverflow.com/ - Корень

Однако канонический URL профиля на самом деле http: // stackoverflow. com / users / 52162 / jensgram , что кажется избыточным (одна и та же конечная точка представлена ​​на двух иерархических уровнях). Альтернатива: http://stackoverflow.com/users/52162-jensgram (или любой другой обычно используемый разделитель).


1) Несет полную информацию, не зависящую от «глубже» элементы.

6
задан Community 13 April 2017 в 12:33
поделиться