【问题标题】:Facebook Sharing Debugger gives Error when using CloudFlare Page Rule to redirect to HTTPSFacebook 共享调试器在使用 CloudFlare 页面规则重定向到 HTTPS 时出现错误
【发布时间】:2016-11-16 11:58:57
【问题描述】:

我有一个最近切换到 HTTPS 的网站。为了将 HTTP 重定向到 HTTPS,我在 CloudFlare 中创建了一个页面规则:

http://www.domain.com/*
Always Use HTTPS

这可行,并且输入站点的 HTTP 版本会重定向到 HTTPS 版本。

但是,此更改使该网站失去了原始 HTTP 版本的 Facebook“赞”。

为了解决这个问题,我关注 Facebook's "moving URLs" instructions 并将 og:url 元标记添加到具有原始 HTTP 域的 HTTPS 站点以捕获原始喜欢:

<meta property="og:url" content="http://www.domain.com"/>

但是,在Facebook Sharing Debugger 上重新抓取网站时,Facebook 给我一个错误提示:

Could Not Follow Redirect Path
Using data from https://www.domain.com/ because there was an error following the redirect path.

Could Not Follow Redirect
URL requested a HTTP redirect, but it could not be followed.

我该如何解决这个问题?

【问题讨论】:

    标签: facebook facebook-graph-api redirect https cloudflare


    【解决方案1】:

    Facebook's docs 声明

    ... 旧 URL 仍然呈现带有 Open Graph 标记的文档,并且 返回 HTTP 200 响应,至少在 Facebook 的 履带式。如果您希望其他客户在访问 URL,您必须将您的 301 HTTP 响应发送给所有非 Facebook 爬虫 客户。旧 URL 应包含其自己的 og:url 标记,该标记指向 本身。

    ie,http://www.domain.com/ 仍然需要 Facebook Crawler 可以访问,因此在 CloudFlare 级别重定向到 HTTPS 可能是个问题。

    您可以尝试在站点的根目录创建一个 .htaccess 文件,而不是在 CloudFlare 重定向到 HTTPS:

    RewriteEngine On
    RewriteCond %{HTTPS} !^on
    RewriteCond %{HTTP_USER_AGENT} !(Facebot|facebookexternalhit/1.1) [NC]
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    如果可行,Facebook 爬虫会看到您网站的 HTTP 版本,而其他所有人都会被重定向到 HTTPS

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多