Ответ 1
Я просто решил это, добавив "/" в конец метатега URL-адреса Facebook. Итак, изменил
<meta property="og:url" content="http://domain.com/path"/>
к
<meta property="og:url" content="http://domain.com/path/"/>
и это сделало трюк!
У меня есть страница, которая перенаправляет на другую страницу, на которой я пытаюсь проверить свой URL: https://developers.facebook.com/tools/debug
Я получаю эту ошибку:
Errors That Must Be Fixed:
Circular Redirect: Circular redirect path detected (see Redirect Path section for details).
Warnings That Should Be Fixed:
The og:url property should be explicitly provided, even if a value can be inferred from other
tags.
Я просто решил это, добавив "/" в конец метатега URL-адреса Facebook. Итак, изменил
<meta property="og:url" content="http://domain.com/path"/>
к
<meta property="og:url" content="http://domain.com/path/"/>
и это сделало трюк!
Из приведенных ниже деталей в разделе пути перенаправления вывода отладчика должно быть ясно:
В большинстве случаев это происходит, потому что вы указали тег og:url
, указывающий (например) "mysite.com/articles", и это перенаправляет на "mysite.com/articles/" - искатель затем переходит к "mysite.com" /articles 'и получает тег og: url, указывающий его обратно на "mysite.com/articles"
Я нашел обходное решение, и хотя он в стеке LAMP
что-то подобное должно быть возможно с помощью .NET
.
Проверка журнала Apache server
при использовании Facebook Linter
я получил:
69.63.189.246 - - [09/Jan/2012: 03: 54: 45 +0000] "GET/test1.php HTTP/1.1" 200 8879 "-" > "facebookexternalhit/1.1 (+ http://www.facebook.com/externalhit_uatext.php)"
Теперь я проверяю, содержит ли User-Agent: facebookexternalhit
, если это так, я показываю исходную страницу, если не перенаправляю на новый url.
Вы можете использовать следующий RewriteCond
в Apache
, чтобы убедиться, что правило перезаписи будет выполняться только в том случае, если User-Agent НЕ НЕ (обратите внимание на восклицательный знак) facebookexternalhit
.
RewriteCond %{HTTP_USER_AGENT} !facebookexternalhit
Это решение является рискованным, если Facebook решит изменить свой заголовок User-Agent, вы будете рояльно... но на данный момент это похоже на трюк.
Возможно добавление заголовка после загрузки страницы помогает
<script type="text/javascript">
// <![CDATA[
var meta = document.createElement('meta');
meta.setAttribute("property", "og:url");
meta.setAttribute("content", location.href);
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(meta);
// ]]>
</script>
http://digdog.tumblr.com/post/1134982957/integrate-tumblr-template-with-facebook-open-graph
В моем случае это был канонический url был на http
, а полученный URL был на https
, переключив его на https, он исправил мою проблему.
Проверьте Canonical URL
в https://developers.facebook.com/tools/debug о том, куда он перенаправляется. Если существует перенаправление 302, то вам нужно либо удалить это перенаправление, либо указать перенаправленный путь в качестве значения метатега og:URL
.
Если http
перенаправляется на https
. Затем укажите https://your-sitename.com в качестве нового значения og: URL.
Обратите внимание, это сбросит все ваши старые комментарии.
У меня была такая же ошибка: В моем случае проблема была www. в каноническом URL-адресе. Совпадение и проблема исчезли.
У меня была та же проблема. Трудно заметить сначала, но герою перенаправлял меня с domain.heroku.com на domain.herokuapp.com.
Странно, причиной этой проблемы было config.action_mailer.default_url_options = {: host = > 'mydomain.herokuapp.com'}, хотя ни одна почтовая программа не участвует.