转移到 SSL,丢失了我的社交分享按钮计数,现在需要使用旧的 http url 来恢复它们

Moved to SSL, lost my social sharing button counts, now need to use the old http url to get them back

我刚刚将我的网站切换到 SSL,我所有的社交分享按钮计数都重置为零,这是预期的,但显然可以告诉这些按钮使用旧的 http url 以恢复旧计数。

我只是不知道如何为我的设置做这件事,按钮是 AddThis,代码是 Php/Html(实际上是 Joomla,但这可能无关紧要)。

AddThis 代码很简单:

<div class="addthis_sharing_toolbox" data-url="THE URL"></div>

所以我最好的猜测是我需要使用当前的 URL,将其从 https 更改为 http,并将其插入上面的 'data-url'。

但是看看这里的其他线程,关于如何安全正确地获取当前URL似乎存在很多争议,所以这就是我卡住的地方。

(除此之外,我只需要为过去的文章进行此切换,而不是新文章,但那是另一回事了。)

有什么想法吗?

非常感谢, 菲尔

共享计数基于确切的 URL,不幸的是,每个共享服务(Facebook、Pinterest 等)的 API 将协议视为不同的 URL。

防止丢失现有 URL 的共享计数的唯一方法是将覆盖共享 URL 设置为旧的 HTTP URL。 然后,您需要在您的站点上设置 301 重定向,以便在访问者从共享 link 在 Facebook(或任何其他服务)上。

您似乎已经找到了更改共享的 URL 的说明 (http://www.addthis.com/academy/setting-the-url-title-to-share/),因此您只需将 data-url 属性设置为旧的 ( HTTP) URL.

花了我一整天,但我终于想通了! This 给了我很多答案,但我仍然无法为 AddThis 进行调整。

这是代码(第一行仅将修复应用于 2016 年 8 月 1 日之前发布的文章,因为我不需要对较新的文章进行更改):

<?php if (strtotime($this->item->publish_up) < 1470009600) : ?>
<script type="text/javascript">
function buttons(){
var kCanonical = document.querySelector("link[rel='canonical']").href;
window.kCompositeSlug = kCanonical.replace('https://','http://');
return;
}
buttons();
var addthis_share = { url: ''+kCompositeSlug+'' };
</script>
<?php endif; ?>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ID-GOES-HERE" async="async"></script>

这是我在客户的 Joomla / K2 网站上运行的代码,这是我的项目模板覆盖的一部分:

<?php if (strtotime($this->item->publish_up) < 1503201600) : ?>
    <!-- Non SSL Command for buttons here -->
    <div class='shareaholic-canvas' data-app='share_buttons' data-app-id='YOURAPPIDHERE' data-link='http://www.yoursite.com<?php echo $this->item->link; ?>'></div>
<?php else: ?>
    <!-- Regular SSL Command for buttons here -->
    <div class='shareaholic-canvas' data-app='share_buttons' data-app-id='YOURAPPIDHERE'></div>
<?php endif; ?>

解决方案的详细信息/分析在这里: https://www.covingtoncreations.com/blog/solution-for-lost-share-count-after-moving-to-ssl-https

它可以在使用 Sharethis 而不是 AddThis 的 Joomla 网站上运行吗? 目前我在

中有以下代码
<script type="text/javascript">var switchTo5x=true;</script>
<script type="text/javascript" src="https://ws.sharethis.com/button/buttons.js"></script>
<script type="text/javascript">stLight.options({publisher: "XXXXXXXXXXXX", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script>
<meta property="fb:app_id" content="XXXXXXXXXXXX"/>
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=XXXXXXXXXXXX=v2.0";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>