For noen dager siden sluttet å vises bilder fra et nettsted jeg vedlikeholder i Gmail. Googles Image Cache Proxy returnerer 404 på hvert bilde. Jeg kan bekrefte at de er tilgjengelige på selve serveren og at nyhetsbrevet vises fint utenfor gmail.com, selv i Gmails egen mobilapp (den bruker tilsynelatende ikke Google Image Fullmektig). Jeg kan til og med bekrefte at Googles bot henter disse bildene regelmessig fra selve serveren med serveren som svarer på status 200 og sender bildet. Bildene det gjelder er png og jpg, ingen svgs (som ser ut til å ha hatt problemer tidligere ifølge min forskning)

Er det et kjent middel for dette, og hvorfor er Google dette onde? Er det en spesiell topptekst som skal settes for dette? Som Cache-Control-header som kreves av Image Proxy spesifikt?

Svar

PHP-applikasjonen serverte et ødelagt bilde ved feil behandling av Accept-Language header som Google Bot sender. Samme feil håndtering skjedde når du ikke sendte ekstra overskrifter til siden.

På siden der det skulle være et bilde, var det et varsel som sa:

Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/myweb.com/public/constants.php on line 3

Kunngjøringen rapporterer en 200 HTTP-status, og det var derfor jeg ikke klarte å fange den med en gang. Google Bot hentet den imidlertid som et ugyldig bilde og på sin side repo rted en 404-feil.

Jeg løste det ved å installere php-intl -pakke.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *