을 제공하는 googleusercontent.com의 이미지
며칠 전에 내가 관리하는 웹 사이트의 이미지가 Gmail에 표시되지 않습니다. Google의 이미지 캐시 프록시는 모든 이미지에 대해 404를 반환합니다. 서버 자체에서 액세스 할 수 있고 뉴스 레터가 Gmail의 자체 모바일 앱에서도 gmail.com 외부에서 정상적으로 표시되는지 확인할 수 있습니다 (Google 이미지를 사용하지 않는 것 같습니다) 대리). Google의 봇이 서버 자체에서 정기적으로 이미지를 가져 와서 서버가 200 개의 상태에 응답하고 이미지를 전송하는 것을 확인할 수도 있습니다. 문제의 이미지는 png 및 jpg이며 SVG는 없습니다 (과거에 문제가 있었던 것으로 보임). 내 연구에 따르면)
이에 대한 알려진 해결책이 있으며 Google이 왜 이런 악한가요?이를 위해 설정해야하는 특수 헤더가 있습니까? 이미지 프록시에 필요한 Cache-Control 헤더와 같습니다. 구체적으로?
Answer
Google Bot이 보내는 Accept-Language 헤더를 잘못 처리 할 때 PHP 애플리케이션이 손상된 이미지를 제공했습니다. 동일 페이지에 추가 헤더를 보내지 않았을 때 잘못된 처리가 발생했습니다.
이미지가 있어야하는 페이지에 다음과 같은 알림이 표시되었습니다.
Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/myweb.com/public/constants.php on line 3
이 알림은 200 HTTP 상태를보고하므로 즉시 확인할 수 없었습니다. 그러나 Google Bot은이를 잘못된 이미지로 가져 와서 다시 저장소 404 오류가 발생했습니다.
php-intl 패키지를 설치하여 문제를 해결했습니다.