2015-12-07 42 views
2

我在Facebook对象调试的情况:如何做共享扩展来显示http共享而不是https?

这一个是,如果我输入http链接

http Input

和这一个HTTPS链接

https Input URL

代码我的joomla扩展是:

<?php 

/*------------------------------------------------------------------------ 
# mod_ofblikebutton - Optimized Facebook Like Button 
# ------------------------------------------------------------------------ 

# author: Optimized Sense 
# copyright: Copyright (C) 2013 http://www.o-sense.com. All Rights Reserved. 
# @license: http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL 
# Websites: http://www.o-sense.com 
# Technical Support: http://www.o-sense.com/contact-us/support-inquiries.html 
-------------------------------------------------------------------------*/ 
// no direct access 
defined('_JEXEC') or die('Restricted access'); 
class oFBLikeButton{ 
    function getData(&$params){   
     $oFBLinkTitle = 'O-Sense'; 
     $oFBLink = 'http://www.o-sense.com'; 
     //$oFBLinkImg = 'http://www.o-sense.com/osensecopy.png'; 
     //$oFlink = $params->get('olink');/// 
     $oFBLink = JURI::current(); 
     $oFshowSend = $params->get('oshowSend');/// 
     $oFstyle = $params->get('ostyle'); 
     $oFwidth = $params->get('owidth', '400');/// 
     $oFfaces = $params->get('ofaces');///   
     $oFfont = $params->get('ofont');/// 
     $oFcolor = $params->get('ocolor');/// 
     $oFverb = $params->get('overb');/// 
     $oFsource = $params->get('osource');/// 
     $oFlang  = $params->get('olang');/// 
     if($oFfaces == '1'){ 
      $oFfaces = 'true'; 
     }else{ 
      $oFfaces = 'false'; 
     } 
     if($oFshowSend == '1'){ 
      $oFshowSend = 'true'; 
     }else{ 
      $oFshowSend = 'false'; 
     } 
     $data =''; 
     if($oFsource == '1'){ 
      //HTML5 

      $app = JFactory::getApplication(); 

      $menu = $app->getMenu(); 

      $lang = JFactory::getLanguage(); 
      $fburl = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 

      if($fburl == 'https://www.atlantotec.com/de/' || $fburl == 'https://www.atlantotec.com' || $fburl == 'https://www.atlantotec.com/de') 

      { 
       $pageurl = 'http://www.atlantotec.com/de/'; 
       $spageurl = 'https://www.atlantotec.com/de/'; 

      } else { 

       $finalurls = explode('/',$_SERVER['REQUEST_URI']); 
       $urls = ''; 
       foreach ($finalurls as $finalurl){ 

        if($finalurl != ''){ 

         $urls .= '/'.$finalurl; 

        } 

       } 

       if ($lang->getTag() == 'it-IT') { 
        $pageurl = 'http://'.$_SERVER['HTTP_HOST'].$urls; 

        $spageurl = 'https://'.$_SERVER['HTTP_HOST'].$urls; 
       } else { 
        $pageurl = 'http://'.$_SERVER['HTTP_HOST'].$urls; 

        $spageurl = 'https://'.$_SERVER['HTTP_HOST'].$urls; 

       } 

      } 
      $data = '<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&version=v2.5&appId=541263185976160"; 

    fjs.parentNode.insertBefore(js, fjs); 
}(document, \'script\', \'facebook-jssdk\'));</script>'; 

      $data = $data . '<div class="fb-like" data-href="'.$pageurl.'" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true"></div>'; 

      /*$url = 'http://api.facebook.com/restserver.php?method=links.getStats&urls='.$pageurl.','.$spageurl; 

      $ch = curl_init($url); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
      $retrun = curl_exec($ch); 
      curl_close($ch); 
      $oXML = new SimpleXMLElement($retrun); 
      $total_count=0; 

      foreach($oXML->link_stat as $link_stat){ 

       //if($total_count != $link_stat->total_count || $total_count ==0) 

       $total_count += $link_stat->total_count; 

      }*/ 

      /*$data = '<div class="fb-like" data-href="'.$spageurl.'" data-layout="button" data-action="like" data-show-faces="false" data-share="true"></div>'; 

      $data = '<div id="fb-root"></div><script language="javascript" type="text/javascript">(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/'.$oFlang.'/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs);}(document, \'script\', \'facebook-jssdk\'));</script>'; 

      $data = $data.'<script language="javascript" type="text/javascript">//<![CDATA[ 
                          document.write(\'<div class="fb-like" data-href="'.$pageurl.'" data-width="'.$oFwidth.'" data-colorscheme="'.$oFcolor.'" data-show-faces="'.$oFfaces.'" data-send="'.$oFshowSend.'" data-font="'.$oFfont.'" data-action="'.$oFverb.'" data-layout="button"></div><div class="pluginCountButton pluginCountNum"><div class="pluginCountButtonNub"><s></s><i></i></div><span id="fb-count">'.$total_count.'</span></div> \'); 
                          //]]> 
      </script>    <div style="display:none; position: relative; height: 15px; width: 100%; font-size: 10px; color: #808080; font-weight: normal; font-family: \'lucida grande\',tahoma,verdana,arial,sans-serif; line-height: 1.28; text-align: right; direction: ltr;"><a href="'.$pageurl.'" target="_blank" style="color: #808080;"> <img alt="OSense" src="'.$oFBLinkImg.'" style="visibility:visible; zoom: 1; opacity: 1; vertical-align: text-top;" /> '.$oFBLinkTitle.'</a></div>';*/ 

      /*$data = $data.'<script language="javascript" type="text/javascript">//<![CDATA[ 
                          document.write(\'<div class="fb-like" data-href="'.$spageurl.'" data-width="'.$oFwidth.'" data-colorscheme="'.$oFcolor.'" data-show-faces="'.$oFfaces.'" data-send="'.$oFshowSend.'" data-font="'.$oFfont.'" data-action="'.$oFverb.'" data-layout="'.$oFstyle.'"></div> \'); 

       //]]> 

      </script>    <div style="display:none; position: relative; height: 15px; width: 100%; font-size: 10px; color: #808080; font-weight: normal; font-family: \'lucida grande\',tahoma,verdana,arial,sans-serif; line-height: 1.28; text-align: right; direction: ltr;"><a href="'.$spageurl.'" target="_blank" style="color: #808080;"> <img alt="OSense" src="'.$oFBLinkImg.'" style="visibility:visible; zoom: 1; opacity: 1; vertical-align: text-top;" /> '.$oFBLinkTitle.'</a></div>';*/ 

     }else if($oFsource == '2'){ 
      //XFBML 
      $data = '<div id="fb-root"></div><script language="javascript" type="text/javascript">(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/'.$oFlang.'/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs);}(document, \'script\', \'facebook-jssdk\'));</script>'; 

      $data = $data.'<script language="javascript" type="text/javascript">//<![CDATA[ 
       document.write(\'<fb:like href="'.$oFlink.'" width="'.$oFwidth.'" colorscheme="'.$oFcolor.'" show_faces="'.$oFfaces.'" font="'.$oFfont.'" send="'.$oFshowSend.'" layout="'.$oFstyle.'" action="'.$oFverb.'"></fb:like> \'); 

       //]]> 
      </script>   <div style="display:none; position: relative; height: 15px; width: 100%; font-size: 10px; color: #808080; font-weight: normal; font-family: \'lucida grande\',tahoma,verdana,arial,sans-serif; line-height: 1.28; text-align: right; direction: ltr;"><a href="'.$oFBLink.'" target="_blank" style="color: #808080;"> <img alt="OSense" src="'.$oFBLinkImg.'" style="visibility:visible; zoom: 1; opacity: 1; vertical-align: text-top;" /> '.$oFBLinkTitle.'</a></div>'; 
     }else { 
      //iFrame    

      $oFsource ="http://www.facebook.com/plugins/like.php?locale=".$oFlang."&amp;href=".$oFlink."&amp;width=".$oFwidth . 
        "&amp;colorscheme=".$oFcolor."&amp;show_faces=".$oFfaces . 

        "&amp;send=".$oFshowSend."&amp;layout=".$oFstyle."&amp;font=".$oFfont."&amp;action=".$oFverb."&amp;height=26"; 

      $data = '<iframe src="'.$oFsource.'" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:'.$oFwidth.'px; height:26px;" allowTransparency="true"></iframe>  <div style="display:none; position: relative; height: 15px; width: 100%; font-size: 10px; color: #808080; font-weight: normal; font-family: \'lucida grande\',tahoma,verdana,arial,sans-serif; line-height: 1.28; text-align: right; direction: ltr;"><a href="'.$oFBLink.'" target="_blank" style="color: #808080;"> <img alt="OSense" src="'.$oFBLinkImg.'" style="visibility:visible; zoom: 1; opacity: 1; vertical-align: text-top;" /> '.$oFBLinkTitle.'</a></div>'; 

     } 


     return $data; 

    } 
} 

而且.httaccess代码:

RewriteEngine on 
Options +FollowSymLinks 

# 
# HTTPS Redirect 

RewriteCond %{HTTP_HOST} !^www\.atlantotec\.com$ 
RewriteRule ^(.*)$ https://www.atlantotec.com/$1 [L,R=301] 

RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteRule ^(.*)=it$ http://www.atlantotec.com/it/$1 [R,NC] 
RewriteRule ^(.*)=de$ http://www.atlantotec.com/de/$1 [R,NC] 
RewriteRule ^(.*)=en$ http://www.atlantotec.com/en/$1 [R,NC] 

我想要做的是共享的HTTP链接,并显示出从http链接的股份,在这一刻我可以分享的HTTP链接,但我看到了https股票。

在Facebook对象调试器中,您可以看到我是否检查http链接,看到https共享,如果检查https链接,我会看到http共享。

我已经删除了规范标签,但不起作用,如果你认为这是一个选项。

那么如何共享http并查看http共享不是https?

回答

1

我刚刚检查了你的网站,而你网站的主要问题是你从http重定向到https,但是,og:url被设置为http://版本。检查HTML代码,你会看到这一点:

<meta property="og:url" content="http://www.[yourdomain].com"/> 

这是混乱的Facebook,你应该有OG:网址为http当你在HTTP模式,并作为HTTPS磨片你在HTTPS模式。

PS:我仍然看到这个代码...

<link href="/de/" rel="canonical" /> 

...但我不认为这是有害的。

+1

我的网站现在只处于https模式。我想分享http模式并在网站上显示http模式。我希望Facebook只将我看作http模式。 – focusoft

+2

@focusoft:如果您的网站自动将所有内容重定向到HTTPS,但您希望Facebook使用您的URL的HTTP版本 - 那么当FB scraper请求它们时,您不能自动重定向到HTTPS,而是让它读取必要的元来自HTTP URL的数据。 FB Scaper [可以通过其用户代理识别](https://developers.facebook.com/docs/plugins/faqs#scraperinfo) - 因此,在HTTP-> HTTPS重写的基础上添加一个例外。 – CBroe

+1

@CBroe你的意思是在.httaccess中添加规则? – focusoft