使用CloudFlare页面规则重定向到HTTPS时,Facebook共享调试器会出错

时间:2016-07-13 18:42:35

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

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

doubleprecision

这样做并且输入网站的HTTP版本会重定向到HTTPS版本。

然而,这一变化使该网站失去了原始HTTP版本的Facebook“喜欢”。

要解决此问题,我按了Facebook's "moving URLs" instructions并将http://www.domain.com/* Always Use HTTPS 元标记添加到HTTPS网站,并使用原始HTTP域捕获原始赞:

og:url

但是,当重新抓取Facebook Sharing Debugger上的网站时,Facebook会给我一个错误说:

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

Facebook's docs状态

  

...旧的URL仍然使用Open Graph标签呈现文档   返回HTTP 200响应,至少在Facebook加载时   履带。如果您希望其他客户在访问时重定向   URL,您必须将301 HTTP响应发送给所有非Facebook抓取工具   客户端。旧URL应包含自己指向的og:url标记   本身。

即,Facebook Crawler仍然需要访问http://www.domain.com/,因此在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 Crawlers会看到您网站的HTTP版本,其他所有人都会被重定向到HTTPS

祝你好运!