Facebook Share показывает URL-адрес _escaped_fragment_ вместо хеш-версии

Я создал одностраничное приложение. Все глубокие ссылки имеют форму mysite.com/#!/entry_title. Это позволяет Google (и Facebook) проверять альтернативный URL-адрес содержимого этой страницы.

Я настроил проверку на стороне сервера, чтобы определить, ищет ли Google или Facebook снимок HTML этой страницы. Если это так, он отправляет другой заголовок, содержащий необходимые метатеги Facebook og.

Вот в чем проблема. Если я вставлю один из своих URL-адресов (mysite.com/#!/entry_title) в поле состояния, отображаемый URL-адрес будет URL-адресом снимка HTML (mysite.com/?_escaped_fragment_/entry_title).

Метатег og:url на странице снимка HTML имеет значение mysite.com/#!/entry_title.

Как заставить Sharer отображать версию URL-адреса mysite.com/#!/entry_title вместо версии снимка HTML?

Заранее спасибо!

  • Бретт

person Brett DeWoody    schedule 28.12.2011    source источник


Ответы (1)


Я понял это и подумал, что опубликую ответ для других.

Хитрость заключается в том, чтобы настроить перенаправление для Google/Facebook, чтобы перейти на более красивый URL-адрес. Таким образом, любой URL-адрес в виде

mysite.com/?_escaped_fragment_/entry_title 

перенаправляется на что-то более красивое, например

mysite.com/view/entry_title

Когда кто-то делится одним из моих динамических URL-адресов, Facebook запрашивает версию страницы с _escaped_fragment_ и перенаправляется на мой более красивый URL-адрес (mysite.com/view/entry_title), который отображается в сообщении Facebook.

Чтобы люди всегда делились моим динамическим URL-адресом, я настроил переадресацию javascript на страницах mysite.com/view/entry_title для перенаправления обратно на страницы mysite.com/#!/entry_title.

Хотя это не показывает динамический URL-адрес в Facebook Share, он показывает более красивый URL-адрес, чем версия _escaped_fragment_, и заставляет людей вернуться к динамическому URL-адресу, которым я хочу, чтобы люди делились.

person Brett DeWoody    schedule 04.01.2012
comment
Я также столкнулся с той же проблемой. У меня все еще нет решения. Но я думаю, что ваше решение слишком сложное. - person Trantor Liu; 21.02.2013