För några dagar sedan slutade bilder från en webbplats som jag höll på att visas i Gmail. Googles Image Cache Proxy returnerar 404 på varje bild. Jag kan bekräfta att de är tillgängliga på själva servern och att nyhetsbrevet visar bra utanför gmail.com, även i Gmails egen mobilapp (det använder tydligen inte Google Image Ombud). Jag kan till och med bekräfta att Googles bot hämtar dessa bilder regelbundet från själva servern med servern som svarar 200-status och skickar bilden. Bilderna i fråga är png och jpg, inga svgs (som verkar ha haft problem tidigare enligt min forskning)

Finns det ett känt botemedel mot detta och varför är Google så onda? Finns det en speciell rubrik som bör ställas in för detta? Som Cache-Control-rubrik som krävs av deras Image Proxy specifikt?

Svar

PHP-applikationen betjänade en skadad bild när den felaktigt hanterade rubriken Accept-Language som Google Bot skickar. Samma felaktig hantering hände när inga extra rubriker skickades till sidan.

På sidan där det var tänkt att vara en bild stod ett meddelande:

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

Meddelandet rapporterar en 200 HTTP-status, varför jag inte kunde fånga den direkt. Google Bot hämtade den dock som en ogiltig bild och i sin tur repo rted ett 404-fel.

Jag löste det genom att installera php-intl -paket.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *