我在单页AngularJS网站上使用Facebook Open Graph Protocol。
为了允许动态OG内容,我将抓取工具重定向到包含已填充的OG元标记的静态HTML页面。
使用PHP创建静态页面:
<?php
makePage();
function makePage() {
?>
<!DOCTYPE html>
<html>
<head>
<meta property="og:title" content="Dynamic" />
<meta property="og:description" content="Dynamic" />
<meta property="og:url" content="Dynamic" />
<meta property="og:image" content="Dynamic" />
<meta property="og:type" content="website" />
</head>
</html>
<?php
}
?>
要在Apache服务器上重定向,我在htaccess文件中有以下内容:
RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit/[0- 9]|Twitterbot|Pinterest|Google.*snippet)
RewriteRule ^ http://www.mydomain/static-page.php [P]
注意具有Apache执行重映射的P标志。
我的方法的更多细节可以在这里找到:
http://www.michaelbromley.co.uk/blog/171/enable-rich-social-sharing-in-your-angularjs-app
PHP中的我的问题:如何收集原始网址?
我想使用此URL来确定每个og元属性的内容。
如果我使用:
$_SERVER['REQUEST_URI'];
我得到静态文件的URL,即/static-page.php
但我希望重定向/重映射之前的URL。
非常感谢 汉克斯