Vanwege de cookiewet laat ik bezoekers zonder cookie van mijn website doorsturen naar mijn cookies pagina. Hier kunnen ze dan wel of niet akkoord gaan. Nu is het zo dat je berichten en video's op m'n site kan sharen op Twitter en Facebook, maar nu is het dus zo dat als je op de Facebook share knop drukt, hij informatie ophaalt van de cookies pagina, hij stuurt Facebook dus simpelweg door naar de cookies pagina. Bij Twitter gaat het wel goed. Nu is mijn vraag, hoe kan ik Facebook (en andere bots?) doorsturen naar de juiste pagina en dus niet de cookies pagina? Het gebeurt bijv. ook als ik de home pagina check met http://validator.w3.org/
Voor zover ik in m'n logs kan zien gebruikt Facebook twee specifieke user-agents bij het crawlen van websites:
• facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
• facebookplatform/1.0 (+http://developers.facebook.com)
Je zou die twee kunnen whitelisten:
• facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
• facebookplatform/1.0 (+http://developers.facebook.com)
Je zou die twee kunnen whitelisten:
PHP:
1
2
3
4
5
6
7
| $ua_product = current(explode('/', $_SERVER['HTTP_USER_AGENT'])); if ($ua_product != 'facebookexternalhit' && $ua_product != 'facebookplatform' && empty($_COOKIE['foo'])) { // redirect... } |
[ Voor 17% gewijzigd door Soultaker op 26-07-2012 15:01 ]
Dan kijk je toch in je logs wat het verschil is tussen een aanroep van Twitter en eentje die van Facebook komt?Bij Twitter gaat het wel goed.
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Ok cool, hij doet 't, dankuSoultaker schreef op donderdag 26 juli 2012 @ 14:13:
Voor zover ik in m'n logs kan zien gebruikt Facebook twee specifieke user-agents bij het crawlen van websites:
* facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)
* facebookplatform/1.0 (+http://developers.facebook.com)
Je zou die twee kunnen whitelisten:
PHP:
1 2 3 4 5 6 7 $ua_product = current(explode('/', $_SERVER['HTTP_USER_AGENT'])); if ($ua_product != 'facebookexternalhit' && $ua_product != 'facebookplatform' && empty($_COOKIE['foo'])) { // redirect... }