【问题标题】:Exempt Facebook Crawler from .htaccess redirect从 .htaccess 重定向中免除 Facebook 爬虫
【发布时间】:2013-10-03 16:52:47
【问题描述】:

我们最近通过 .htaccess 强制所有页面为 HTTPS:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

问题是我从 Facebook 调试器得到“检测到循环重定向路径”,因为原始 URL 是 https,但 og:url 是 http(所以我们不会丢失所有旧的喜欢),然后它得到一个 302 循环回到 https。

如何使 Facebook 成为此 .htaccess 规则的例外?

【问题讨论】:

  • 检查他们的用户代理,如果 HTTP_USER_AGENT 与 facebook 匹配,您可以关闭重写引擎或跳过该重写。
  • 如何查看 FB opengraph 用户代理?

标签: facebook .htaccess redirect


【解决方案1】:

This question 解决了 facebook 外部点击看起来像的用户代理。你只需要添加一个条件来检查它:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_USER_AGENT} !facebookexternalhit/[0-9]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

【讨论】:

  • 谢谢!像魅力一样工作
  • 这还能用吗?我在一个 Joomla 网站上使用了这个,该网站使用 Cloudflare 和强制 SSL,但没有工作。
  • @9944990 CloudFlare 的“强制 SSL”的本质是 CF 在您的服务器有机会处理 .htaccess 中的这些规则之前告诉浏览器重定向到 HTTPS。因此,您需要关闭“强制 SSL”并让您的 .htaccess 进行重定向。
  • 我在我的 htaccess 中添加了相同的内容.. 现在 fb 更新它不起作用
猜你喜欢
  • 2021-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
  • 2013-10-03
  • 1970-01-01
  • 1970-01-01
  • 2014-10-29
相关资源
最近更新 更多