Linux — Apache или PHP заменить имя хоста

Перераспределение моих запросов PHP (CURL, fsockopen, file_get_contents) source.com в x.x.x.x следующим образом:

Win OS:

c:\Windows\System32\drivers\etc\hosts
x.x.x.x source.com

ОС Linux:

$ sudo gedit /etc/hosts
x.x.x.x source.com

Возможно ли сделать это на уровне конфигурации Apache или PHP (т.е. без вмешательства в файл hosts)?

-1

Решение

Итак, вы хотите форсировать разрешение DNS domain1.com на другой IP (скажем, domain2.comIP), но не хочу делать это с помощью /etc/hosts и хотел бы сделать это только в конфигурации Apache или PHP.

Ну, проблема в том, что PHP использует настройки DNS вашего сервера, установленные в /etc/resolv.conf а также /etc/hosts как переопределение, и Apache — это просто веб-сервер, поэтому он не может изменить логику вашего приложения или управлять сетью.

Что будет чище, это сохранить IP domain2.com в конфигурационном файле php и вызовите этот IP с помощью curl вместо domain1.com, и вы все еще можете добавить Host: domain1.com заголовок вашего HTTP-вызова, если это необходимо.

Изменить: Вот пример использования curl в PHP.

Скажем

  • domain1.comIP есть 1.1.1.1
  • domain2.comIP есть 2.2.2.2

Если ваша цель позвонить 2.2.2.2 но с доменом domain1.comВам просто нужно изменить Host заголовок вашего HTTP-запроса, например:

<?php
$ch = curl_init('http://2.2.2.2/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: domain1.com'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]