编程语言
首页 > 编程语言> > 带有og metatag的php重定向url(打开图)

带有og metatag的php重定向url(打开图)

作者:互联网

我在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"/>

解决方法:

由于redirect.php会在每次访问或/&时进行重定向.执行将是不可能的,但是通过简单的if语句,我们可以允许Facebook Debugger读取页面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.

参考

> How to recognize Facebook User-Agent

标签:facebook,redirect,opengraph,php
来源: https://codeday.me/bug/20191029/1962023.html