Отладчик Facebook: измените каноническое значение URL после перезаписи обратного прокси - PullRequest
0 голосов
/ 18 мая 2018

Я создал простое приложение, в котором сервер отображает некоторый базовый контент SPA на основе пользовательского агента.

Например, если ссылка на веб-сайт AngularJS предоставляется в Facebook, у меня есть правило перезаписи Apache для перенаправления этогоссылка на приложение рендеринга.Затем приложение рендеринга проверяет URL-адрес, который был передан в качестве параметра запроса, и возвращает указанное отображаемое содержимое.

Все работает, как ожидается, но есть проблема с отображаемым результатом.Каноническая ссылка, показанная в сообщении Facebook, является ссылкой приложения рендеринга.Вот что происходит:

Общая ссылка: www.example.com/the-shared-link

Результат публикации в Facebook:

enter image description here

Вместо отображения общей ссылки (www.example.com/the-shared-link) вместо этого отображается приложение рендеринга (render.app.com).Но если я нажму на пост в Facebook, откроется правильная страница сайта.

Результат отладчика Facebook:

enter image description here

Все необходимоеНа отображаемую страницу результатов добавлены метатеги:

<!-- Schema.org markup for Google+ -->
<meta itemprop="name" content="Lorem ipsum dolor sit amet, consectetur adipiscing elit." />
<meta itemprop="description" content="Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo." />
<meta itemprop="image" content="http://www.example.com/some-image.jpg" />

<!-- Twiter Cards -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="Lorem ipsum dolor sit amet, consectetur adipiscing elit." />
<meta name="twitter:title" content="Lorem ipsum dolor sit amet, consectetur adipiscing elit." />
<meta name="twitter:description" content="Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo." />
<meta name="twitter:image:src" content="http://www.example.com/some-image.jpg" />
<!--/ Twiter Cards -->

<!-- Open Graph -->
<meta property="og:site_name" content="Lorem ipsum dolor sit amet, consectetur adipiscing elit." />
<meta property="og:type" content="website" />
<meta property="og:title" content="Lorem ipsum dolor sit amet, consectetur adipiscing elit." />
<meta property="og:url" content="http://www.example.com/the-shared-link" />
<meta property="og:description" content="Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo." />
<meta property="og:image" content="http://www.example.com/some-image.jpg" />
<meta property="og:image:width" content="500" />
<meta property="og:image:height" content="375" />
<!--/ Open Graph -->

Правило переписывания Apache htaccess:

RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit/[0-9]|Facebot|Twitterbot/[0-9]|Pinterest|Pinterestbot|LinkedInBot/[0-9])
RewriteRule ^(.*)$ http://rendering.app.com/?url=%{REQUEST_URI} [P,L]

Что я делаю не так?Как я могу изменить каноническую ссылку на исходную общую ссылку?

1 Ответ

0 голосов
/ 28 мая 2018

Решил мою проблему!

Домен render.app.com имел правило перезаписи для принудительной установки https.Это вызывает перенаправление HTTP 301 (так же, как показал отладчик Facebook).Использование https : //rendeting.app.com решило мою проблему.Другим способом решения проблемы перенаправления HTTP 301 было бы удаление правила перезаписи https в целевом домене.

...