На сайте PHP я запрашиваю изображения (фотографии профиля пользователя) из файла PHP, изображение загружается явным образом с использованием HTTPS в качестве всего сайта, где включен HSTS.
Проблема в том, что сайт даетПредупреждение о «смешанном содержимом» в Chrome и Firefox, даже если ни один ресурс не загружен с использованием HTTP - все они являются относительными или явными HTTPS в исходном коде.
Когда я смотрю на вкладку сети в инструментах разработчика Chrome, яМожно видеть, что изображение первоначально запрашивается с использованием HTTPS, но затем выполняется внутреннее перенаправление 307 с использованием HTTP, и, наконец, изображение извлекается с использованием HTTPS. HTTP-запрос на вкладке Chrome network
В PHP-файле, возвращающем изображение, запрос направляется по index.php и .htaccess с использованием простого rewriterule
RewriteRule ^([^/.]+)/([^/.]+)/?$ index.php?action=$1&data1=$2 [L,QSA]
ИPHP-файл также очень прост.
if(!isset($_GET["f"]))die("filepath missing");
$file = APP."/filecache/".$_GET["f"];
if(file_exists($file)){
if(substr($_GET["f"],-3)=="jpg") Header("Content-Type: image/jpeg");
if(substr($_GET["f"],-3)=="png") header("Content-Type: image/png");
header('Cache-control: max-age='.(60*60*24*365));
header('Expires: '.date("Y-m-d H:i:s",strtotime("+365 days")));
header('Last-Modified: '.gmdate(DATE_RFC1123,filemtime($file)));
readfile($file);
}else{
die("no such file");
}
Веб-приложение работает "отлично", но предупреждение о смешанном контенте действительно расстраивает меня, поэтому я буду очень признателен за любые советы или идеи, которые могут сработать.
Сайт работает на DO VPS, Apache / Nginx с PHP-FPM 7.1.
С уважением и счастливых праздников, Марк