Vor einigen Tagen wurden Bilder von einer von mir gepflegten Website nicht mehr in Google Mail angezeigt. Der Image-Cache-Proxy von Google gibt für jedes Bild 404 zurück. Ich kann bestätigen, dass auf dem Server selbst auf sie zugegriffen werden kann und der Newsletter außerhalb von gmail.com auch in der eigenen mobilen App von Google Mail einwandfrei angezeigt wird (anscheinend wird Google Image nicht verwendet) Proxy). Ich kann sogar bestätigen, dass der Bot von Google diese Bilder regelmäßig vom Server selbst abruft, wobei der Server auf den Status 200 reagiert und das Bild sendet. Bei den fraglichen Bildern handelt es sich um PNG und JPG, keine SVGs (die in der Vergangenheit anscheinend Probleme hatten Nach meinen Recherchen)
Gibt es ein bekanntes Mittel dafür und warum ist Google so böse? Gibt es einen speziellen Header, der dafür festgelegt werden sollte? Wie den Cache-Control-Header, der von ihrem Image Proxy benötigt wird Speziell?
Antwort
Die PHP-Anwendung lieferte ein beschädigtes Bild, wenn der von Google Bot gesendete Accept-Language-Header falsch behandelt wurde Eine falsche Behandlung ist aufgetreten, wenn keine zusätzlichen Header an die Seite gesendet wurden.
Auf der Seite, auf der sich ein Bild befinden sollte, befand sich ein Hinweis:
Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/myweb.com/public/constants.php on line 3
Der Hinweis meldet einen 200-HTTP-Status, weshalb ich ihn nicht sofort abfangen konnte. Google Bot hat ihn jedoch als ungültiges Bild abgerufen und seinerseits repo Es wurde ein 404-Fehler gemeldet.
Ich habe ihn behoben, indem ich das Paket php-intl installiert habe.