Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何让Facebook调试器读取规范URL?_Php_Facebook_.htaccess_Seo_Meta Tags - Fatal编程技术网

Php 如何让Facebook调试器读取规范URL?

Php 如何让Facebook调试器读取规范URL?,php,facebook,.htaccess,seo,meta-tags,Php,Facebook,.htaccess,Seo,Meta Tags,因此,当我使用Facebook的Open Graph对象调试器测试我的网站时,就会发生这种情况: 它不喜欢配置文件页面后面的尾随数字。但我对这两个方面都有正确的定义: <meta property="og:url" content="http://www.website.com/profile/139"> <link rel="canonical" href="http://www.website.com/profile/139"> 我已经尝试了几个小时,它只是不

因此,当我使用Facebook的Open Graph对象调试器测试我的网站时,就会发生这种情况:

它不喜欢配置文件页面后面的尾随数字。但我对这两个方面都有正确的定义:

<meta property="og:url" content="http://www.website.com/profile/139">
<link rel="canonical" href="http://www.website.com/profile/139">

我已经尝试了几个小时,它只是不断重定向到主页:

有什么我可以添加到我的
.htaccess
文件或PHP头中以防止301重定向的吗


可能与Facebook/Google处理URL参数的方式有关:

Facebook将og:URL元标记视为页面的规范:

<meta property="og:url" content="http://www.yoursite.com/your-canonical-url" />

如果您的规范url正在重定向,那么实际上您正在创建一个循环。 不要从你的规范中重定向。 Canonical是应该被认为是爬行器更好的选择的页面。
如果一个页面有一个规范的url标记,这意味着它不是最好的/默认的页面,而是Canocial的一个较小的变体。

anser是我们的域主机WP引擎的一个问题,它诱使爬行器忽略页面url末尾的纯数字字符串。具体涉及:

  • 谷歌机器人(谷歌的蜘蛛)
  • 咕噜!(雅虎的蜘蛛)
  • BingBot(Bing的蜘蛛)
  • Facebook OG/调试器
例如,以下URL:

将对这些机器人程序解释为:


但是,如果字符串不是数字,机器人会识别它。这样做是为了缓存。但同样,这只适用于WP引擎和其他一些托管提供商

找出导致此重定向的原因,而不是试图阻止它!如果您需要帮助,您需要提供您已有的规则。您可以提供页面的实际url,这将更便于调试。如果用户未定义任何用户代理或禁用javascript,您是否可能将用户重定向到mainpage?或者在查看个人资料页面之前是否有任何登录程序?这也为我们解决了这个问题。我们询问了WP引擎,他们禁用了“”选项。请参阅那篇文章中的“什么时候应该关闭它?”部分,其中解释了Facebook的URL调试器的效果。在他们这样做之后,我们刷新了缓存,并重新启动了Facebook对象调试器,og:url保留了数字结尾,因此在共享时会显示正确的图像和其他元数据。谢谢这使我省去了一些麻烦。非常感谢!