Open Graph 抓取基本 URL 而不是它给定的 URL

JMT*_*ler 4 facebook magento facebook-opengraph

Facebook OpenGraph 调试工具正在抓取错误的页面。

如果我给它一个完整的 URL(指向我网站上的单个页面),我希望它抓取,而不是抓取该页面并找到它的元标记,它会抓取我网站的主页并返回那些元标记(这显然是在这种情况下是错误的)。

奇怪的是,它甚至会找到并抓取我网站的主页,即使它不在我的域的根目录中。例如:
我想让它刮http://mydomain.com/myhomepage/specific_page.html
而不是,它刮http://mydomain.com/myhomepage/

这对我来说意味着错误必须是某个地方的设置,无论是在我的网站上还是在我的 Facebook 应用程序设置上。应用程序设置会这样做吗?如果请求的 URL 是它的后代,则重定向到设置的任何 URL?
我请求的 URL 没有执行 302 或任何操作 - 我甚至可以单击 FB 调试工具中的链接,它会将我带到相应的页面。

一些注意事项:

  • specific_page.html不是一个实际的文件,它是在 Apache 的 htaccess 中使用 mod_rewrite 通过 index.php 路由的。我试着具体说明,http://mydomain.com/myhomepage/index.php/specific_page.html但它也不起作用。
  • 另一个 SO 问题让我相信,如果不允许 cookie(因为 Facebook 网络爬虫不允许),用户代理可能会被重定向,所以我打开了一个新的浏览器,禁用了 cookie,再次尝试,我仍然到达适当的页面。

Igy*_*Igy 6

正如上面的评论中提到的,在你的情况下,这是由于og:url元标记,将 Facebook 的爬虫重定向到该 URL

通常,这种情况通常是og:url标签、HTTP 重定向或指向“其他”/“错误”URL 的规范元标签——Facebook 的爬虫跟踪这些重定向以寻找最终 URL