get_headers на хостинге показывает ложь
Когда скрипт выполняется на OPEN SERVER на моем компьютере ответ такой "HTTP/1.1 403 Forbidden" и это правильный ответ.
Когда выполняется на виртуальном сервере на хостинге SPRINTHOST.ru ответ такой "HTTP/1.1 200 OK" это ложь!
В чем дело, почему хостинг заставляет скрипт выполняться по другому.
$headers = @get_headers('https://user11183.clients-cdnnow.ru/hls/TV1000_HD/master.m3u8');
echo $headers[0];
Ответы (2 шт):
Автор решения: Дмитрий Bulyha
→ Ссылка
ответ с локального сервера
array(11) { [0]=> string(22) "HTTP/1.1 403 Forbidden" [1]=> string(13) "Server: nginx" [2]=> string(35) "Date: Fri, 03 Apr 2020 18:32:31 GMT" [3]=> string(23) "Content-Type: text/html" [4]=> string(19) "Content-Length: 146" [5]=> string(17) "Connection: close" [6]=> string(25) "X-Geo-Allowed-Country: no" [7]=> string(22) "X-Geo-Country: Belarus" [8]=> string(14) "X-Geo-Code: BY" [9]=> string(21) "X-Geo-City: Dokshytsy" [10]=> string(23) "X-Edge-Ip: 172.19.25.48" }
ответ с хостинга
array(15) { [0]=> string(15) "HTTP/1.1 200 OK" [1]=> string(13) "Server: nginx" [2]=> string(35) "Date: Fri, 03 Apr 2020 18:32:20 GMT" [3]=> string(43) "Content-Type: application/vnd.apple.mpegurl" [4]=> string(17) "Connection: close" [5]=> string(44) "Last-Modified: Fri, 03 Apr 2020 18:32:20 GMT" [6]=> string(20) "ETag: "5e878134-1ff"" [7]=> string(13) "X-Coder: mb-1" [8]=> string(30) "Access-Control-Allow-Origin: *" [9]=> string(42) "Cache-Control: no-cache, no-store, private" [10]=> string(26) "X-Geo-Allowed-Country: yes" [11]=> string(21) "X-Geo-Country: Russia" [12]=> string(14) "X-Geo-Code: RU" [13]=> string(18) "X-Edge-Cache: MISS" [14]=> string(23) "X-Edge-Ip: 172.19.25.12" }
в одном ответе X-Geo-Allowed-Country: yes а в другом X-Geo-Allowed-Country: no
это я так понимаю перенаправление зависящие от региона, от сюда и ошибка.
Автор решения: DrMcSheen
→ Ссылка
403 Forbidden - доступ к файлу запрещён.
HTTP/1.1 200 OK - файл найден, доступ открыт.
Смотри права доступа