TECH BOX

Technology blog from Web Engineer

この記事は最終更新日から6年以上経過しているため正確ではないかもしれません

Facebookのクローラのみを許可する方法

使う機会は多くないですが、BASIC認証をかけているサイトなどでFacebookデバッガーを使って情報を確認したい時、そのままだと401になってしまい確認できないのでFacebookのクローラのみを許可する方法。

.htaccessの場合

.htaccessを使う場合はファイルの最終行が改行されている必要があるので注意。

SetEnvIf User-Agent "^facebookexternalhit.*$" fb_crawler
SetEnvIf User-Agent "^facebookplatform.*$" fb_crawler
Allow from env=fb_crawler

PHPの場合

ハッシュフラグメントなどでFacebookシェアのためだけの専用ページがある場合など。

$ua = $_SERVER["HTTP_USER_AGENT"];

if(!preg_match("facebookexternalhit/i", $ua)){
  // Facebookのクローラでない場合は何か処理をする
}

JavaScriptの場合

使い道はないと思いますが・・・。

var ua = window.navigator.userAgent.toLowerCase();

if(ua.indexOf("facebookexternalhit") > -1){
  // facebookのクローラだった場合には何か処理をする
}