4996

Не работает cUrl в PHP с хостингом TimeWeb

1 ответ

Здравствуйте.

Имеется домен test1.ru (домен для примера и далее тоже я не тупой), DNS которого привязаны к timeweb. В панели управления доменом присвоена запись поддомена *.test1.ru XXX.XXX.XXX.XXX, где xxx IP адрес сервера, установленного у меня дома.

Через браузер сайт test1.ru тянется с хостинга, а все поддомены успешно открываются с домашнего сервера.

Однако, если с хостинга выполнить простой cUrl запрос на поддомен, то он не возвращает данных, а возвращает страницу заглушку "Разместите свой сайт в timeweb". И не получается дернуть даже содержимое текстового файла.

Файл index.php на test.1ru

Файл file.txt на sub.test1.ru

<?php
function getFromURL() {
$curl = curl_init();

 $url = 'http://sub.test1.ru/file.txt';

 curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

 if($post) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, urldecode(http_build_query($params)));
}

 $result = curl_exec($curl);

 @curl_close($curl);

 return $result;
}
?>

Возвращается такое:

HTTP/1.1 302 Moved Temporarily Server: nginx/1.12.1 Date: Tue, 17 Oct 2017 14:05:02 GMT Content-Type: text/html Content-Length: 161 Connection: keep-alive Location: http://patria.timeweb.ru/parking/?ref=sub.test1.ru Cache-Control: no-cache, no-store HTTP/1.1 200 OK Server: nginx/1.12.1 Date: Tue, 17 Oct 2017 14:05:02 GMT Content-Type: text/html; charset=utf-8 Content-Length: 10155 Connection: keep-alive Vary: Accept-Encoding Last-Modified: Tue, 22 Aug 2017 07:25:12 GMT ETag: "27ab-557527eedc600" Accept-Ranges: bytes Больше, чем хостинг. Этот домен припаркован компанией Timeweb....

Помогите разобраться, в чем проблема

Ответы (1)

Бойко Сергей +4
30.11.2017 00:35
CURL в вашем случае работает. Просто вы обращаетесь по URL к домену (сайту) который либо физически не существует (но доменное делегировано на timeweb), либо по данному URL происходит редирект на страницу с заглушкой от timweb. Проверьте адрес для CURL в скрипте.

Похожие вопросы

Павел Яковлев
940

Не создается папка storage (Laravel)

Тестил сайт где-то месяц назад и при написании "php artisan storage:link" создавалась папка storage, а сейчас создается только какой-то файл с именем "storage". Если кто сталкивался с таким помогите :)
Amira Rossow
644

Can I change the default version of php in console?

Hello Everyone, I'm goining to give you an example in way " in my composer dependencies, I need a php version of at least 7.3. " And because of this I can not execute `composer install`, because php version in console 7.1. Although...
Кирилл
465

Сохранение файлов сессий пользователей в папке выше, но для текущего домена

Здравствуйте! Пытаюсь изменить путь к сессиям пользователей через php.ini, но получается только изменить путь session.save_path для Master Value файла phpinfo(), а Local Value (куда в реальности заносятся файлы сессий) не меняется. Я пробовал делать...
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта