Почему неканонический URL-адрес с идентификатором фрагмента (#) используется совместно с параметром запроса `_escaped_fragment_`?

Я использую диалоговое окно "Поделиться" в Facebook, чтобы поделиться URL-адресом, например... .

http://www.example.com/products/9-some-name#!23

В HTML для этой страницы другой URL-адрес (также с идентификатором фрагмента) указан в качестве канонического URL-адреса, например

<link rel="canonical" href="http://www.example.com/products/9-canonical-name#!23">
<meta property="og:url" content="http://www.example.com/products/9-canonical-name#!23">

В моем профиле Facebook общий URL-адрес отображается как

http://www.example.com/products/9-canonical-name?_escaped_fragment_=23

Это ошибка? (Я ожидал, что общий URL будет опубликован как есть, то есть не канонический, и без каких-либо преобразований.)

ОБНОВЛЕНИЕ

После дополнительных исследований я понял, что это не имеет ничего общего с идентификаторами фрагментов. Основная проблема заключается в том, что URL-адрес, размещенный Facebook в профиле пользователя, является URL-адресом в og:url, а не исходным общим URL-адресом. И кажется, что нельзя изменить (как я понял из похожий вопрос).


person Xavi    schedule 01.04.2015    source источник
comment
Хэш-часть URL-адреса имеет значение только для клиента. Facebook подозревает, что вы можете показывать разный контент для разных хэшей, и поэтому они запрашивают формат экранированного фрагмента, который Google изобрел для таких случаев, чтобы убедиться, что сервер может доставить правильный фрагмент контента.   -  person CBroe    schedule 02.04.2015


Ответы (1)


Согласно документации по обмену передовым опытом на Facebook, og:url должен быть URL-адресом без идентификатора сеанса или посторонних параметров. Все публикации на Facebook будут использовать og:url в качестве идентификационного URL.

developers.facebook.com/docs/sharing/best-practices#tags

person Hey Darren    schedule 07.04.2015