Basic 認証中のページで OGP のテストをする

Basic 認証中のサイトだと Facebook の OGP の確認ができない。
これは、「いいね!」ボタンを押した後に、Facebook のクローラが OGP を改めて読みにくるため。

なので、「Facebook のクローラには Basic 認証を適用しない」設定を追記すれば良い。

Facebook からのアクセスは

"GET / HTTP/1.1" 401 480 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

こんな感じのログを残すので、 『UserAgent : facebookexternalhit』を許可する

# Basic の基本設定
AuthUserFile /path/to/.htaccess
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

Satisfy Any
Order Allow,Deny


# 許可するIP 1
Allow from xxx.xxx.xxx.xxx
# 許可するIP 2
Allow from yyy.yyy.yyy.yyy

# FB のクローラを許可
SetEnvIf User-Agent "^facebookexternalhit.*$" fb_crawler
SetEnvIf User-Agent "^facebookplatform.*$" fb_crawler
Allow from env=fb_crawler

で、こんな感じ。