我在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"/>
答案 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
。
参考