常時SSL化でFaceBookクローラーをhttpに通してあげる件(Nginx)
こんにちは、山上です。
2018年7月リリースの「chrome68」から「保護されていません」という警告が出ることもあり、弊社もSSL化の話で盛り上がっていました。
SSL化の話の中で出てくる懸念としてFaceBookの「いいね!」が引き継がれないといういやつです。
apacheのは見かけたので、Nginxの設定を書いてきます。
「いいね!」を引き継ぐためには、og:urlをSSL化する前のURLで設定して上げる必要があります。
詳しくはこちら、
https://developers.facebook.com/docs/plugins/faqs#faq_1149655968420144
ogタグの設定後、FaceBookクローラーをSSL化前のURLにリダイレクトしてあげる必要があります。下記はNginxで設定した内容です。
set $is_fb 0;
if ($http_user_agent ~* "facebookexternalhit"){
set $is_fb 1;
}
location / {
if ($is_fb = 1) {
proxy_pass http://backend;
break;
}
}
FaceBookクローラーかどうかを判断して、そうであれば過去のURLであるhttpに通すということをやってます。
該当部分だけ記載しました。
FaceBookのクローラーに関しては下記に詳しくありますので、ご参照ください。
https://developers.facebook.com/docs/sharing/webmasters/crawler?locale=ja_JP