php重定向url与og metatag(打开图)

时间:2014-04-01 08:13:23

标签: php facebook redirect opengraph

我在PHP redirect.php中有服务器端重定向页面此页面使用PHP header()函数重定向用户:

header( 'location: mypage.html?test' );

有没有办法添加一些OG元标记(Open Graph),当某人在Facebook和类似网站上共享redirect.php页面时,这些属性会被应用?

<meta property="og:title" content="Facebook should load this when shared redirect.php"/>

1 个答案:

答案 0 :(得分:4)

由于redirect.php无论何时访问它都会重定向或/&amp;执行它是不可能的,但使用简单的if语句,我们可以允许Facebook调试器读取页面OG元标记,如下所示

PHP

<?php
if (in_array($_SERVER['HTTP_USER_AGENT'], array(
  'facebookexternalhit/1.1 (+https://www.facebook.com/externalhit_uatext.php)',
  'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)'
))) {
  header("HTTP/1.1 200 OK");
  print '<html prefix="og: http://ogp.me/ns#">
               <head>
                  <title>{title}</title>
                  <meta property="og:title" content="{OG Title}" />
                  <meta property="og:type" content="website" />
                  <meta property="og:url" content="http://example.com" />
                  <meta property="og:image" content="http://example.com/og_img.jpg" />
              </head>
        </html>';
}
else {
  // You're not Facebook agent '__' 
  header('Location: mypage.html?test');
}

请注意,这仅适用于Facebook僵尸程序,导致在Google或Twitter上对此页面编制索引时出现问题,因此我建议您使用JavaScript location.href

参考