Пытаюсь с основного домена (domain.ru) отправить cUrl запрос на поддомен (s1.domain.ru/path/to/script). Домены находятся на разных серверах. Проблема в том, что на локалке все работает (соответственно domain.local и s1.domain.local), но когда заливаю на сервер, то запрос до поддомена не доходит. В качестве вывода curl_exec() получаю 404 ошибку, стандартную. В тексте ошибки следующее:
The requested URL /path/to/script was not found on this server.
Такое чувтсво, что скрипт с cUrl на основном домене обращается не на поддомен s1, а на самого себя (domain.ru/path/to/script).
Код:
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, 's1.domain.ru/path/to/script');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($ch);
curl_close($ch);
Перепробовал по всякому на разных примерах из интернета. На другие сайты запрос идет и все работает, не работает только с поддоменом.
Скрипт s1.domain.ru/path/to/script простро выводит "Hello World".
Вопрос в следующем: возможно в curl_setopt нужно что то специфическое указывать или все таки дело в сервере. Может есть какие-то настройки, из-за которых неработает запрос на поддомен. Сам склоняюсь ко второму, но даже не представляю, что это могут быть за настройки.
php 7, ubuntu 16.04.
Проверьте какая ошибка:
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, $_SERVER['REQUEST_SCHEME'].'://'.'s1.domain.ru/path/to/script');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($ch);
if (curl_errno($ch)) {
print "Error: " . curl_error($ch);
}
curl_close($ch);
PS: Если у вас https попробуйте для проверки отключить верификацию:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
Возможно проблема в том что не указывали схему http или https в начале url. Попробуйте такой вариант:
$ch = curl_init()
curl_setopt($ch, CURLOPT_URL, 'http://s1.domain.ru/path/to/script');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($ch);
curl_close($ch);
Всем спасибо за ответы и потраченное время.
Проблему решил сам. Собственно, как обычно, сам ее и создал.
В панели управления сервером, был добавлен ip сервера поддомена (в ходе "экспериментов"), о чем я успешно забыл. Соответственно запрос шел не на сервер поддомена, а на собственный сервер.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники