を提供するgoogleusercontent.comの画像数日前、私が管理しているウェブサイトの画像がGmailに表示されなくなりました。 Googleの画像キャッシュプロキシはすべての画像で404を返します。サーバー自体でアクセス可能であり、Gmail自体のモバイルアプリでもニュースレターがgmail.comの外部で正常に表示されることを確認できます(Google画像を使用していないようですプロキシ)。 Googleのボットがサーバー自体からこれらの画像を定期的にフェッチし、サーバーが200ステータスに応答して画像を送信していることも確認できます。問題の画像は、pngとjpgであり、svgはありません(過去に問題があったようです)。私の調査によると)
これに対する既知の救済策はありますか、そしてなぜGoogleはこれが悪いのですか?これに設定する必要がある特別なヘッダーはありますか?ImageProxyに必要なCache-Controlヘッダーのように具体的には?
回答
Google Botが送信するAccept-Languageヘッダーを誤って処理すると、PHPアプリケーションが破損した画像を提供していました。同じページに余分なヘッダーを送信しないと、誤った処理が発生しました。
画像であるはずのページに、次のような通知がありました。
Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/myweb.com/public/constants.php on line 3
通知は200HTTPステータスを報告しているため、すぐにキャッチできませんでした。ただし、Google Botはそれを無効な画像としてフェッチし、次にリポジトリを取得しました。 404エラーが発生しました。
php-intl パッケージをインストールして解決しました。