.htaccess 限制访问Facebook';s OpenGraph刮刀

.htaccess 限制访问Facebook';s OpenGraph刮刀,.htaccess,facebook-like,facebook-opengraph,.htaccess,Facebook Like,Facebook Opengraph,有没有办法将我们的页面访问限制为只允许使用Facebook的OpenGraph刮板系统?我们在一个页面上有多个like(类似于Digg),每个like都需要自己的OpenGraph标签,我们通过页面story.php?1和2等在单独的页面上提供这些标签。我们不希望用户能够查看story.php,因为它们包含的都是og:tags 编辑:看来我可以用这篇文章中的信息做一些事情: 如何从HTTP 301重定向中排除特定域。您能帮忙吗?最后,我选择将此添加到story.php代码中,它工作得非常好: &

有没有办法将我们的页面访问限制为只允许使用Facebook的OpenGraph刮板系统?我们在一个页面上有多个like(类似于Digg),每个like都需要自己的OpenGraph标签,我们通过页面
story.php?1
2
等在单独的页面上提供这些标签。我们不希望用户能够查看
story.php
,因为它们包含的都是og:tags

编辑:看来我可以用这篇文章中的信息做一些事情:


如何从HTTP 301重定向中排除特定域。您能帮忙吗?

最后,我选择将此添加到story.php代码中,它工作得非常好:

<?php

if ($_SERVER["HTTP_USER_AGENT"] != "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)") {
redirect('http://www.mywebsite.com', 302);
}
function redirect($url, $type=302) {
if ($type == 301) header("HTTP/1.1 301 Moved Permanently");
header("Location: $url");
die();
}

?>


如果您在这里谈论的是Apache web服务器,您可以使用mod_rewite–使用RewriteCond检查主机名,然后使用以下RewriteRule重定向。我想是这样的,但不是IP,而是Facebook的域。。。我该怎么补充呢<代码>RewriteBase/RewriteCond%{REMOTE_HOST}上的RewriteEngine^173\.194\.41\.134重写秒%{请求URI}/index\.php$RewriteRule.*/index.php[R=302,L]此外,它必须只允许facebook.com访问story.php并拒绝其他任何人。啊,这就是你想要的——那么你在这里走错了方向。在这种情况下,Facebook的scraper是客户端,所以域名不会告诉你你想要什么(因为它是你的域名)。您可以通过它的用户代理头来识别刮板,确切地说,您已经找到了。不幸的是,我不知道如何把这些放在一起。因此本质上只有
facebookexternalhit/1.1(+http://www.facebook.com/externalhit_uatext.php
应该被允许访问
story.php
,所有其他用户都被重定向到
index.php
——如果能做到这一点,我将非常高兴!