Как заставить Apache2 использовать / отвечать только на IP-адрес
У меня есть сервер apache2, который находится за брандмауэром. Внешний адрес 24.89.xxx.xxx, а внутренний адрес 10.10.58.1
Имя хоста сервера - "myhost". У меня нет записи DNS для адреса 24.89.xxx.xxx, потому что он еще не запущен. Доменное имя, которое будет разрешено, в данный момент используется для существующего сайта.
Я бы хотел, чтобы команда веб-разработчиков могла получить доступ к сайту через адрес 24.89.xxx.xxx. Однако всякий раз, когда они просматривают сайт, во все URL-адреса вставляется локальное имя хоста.
Так, <a href="index.php?id=9">Link</a>
производит URL-адрес http://myhost/index.php?id=9
Тем не менее, я хотел бы получить URL http://24.89.xxx.xxx/index.php?id=9
Apache установлен на Debian Lenny. Я использую сайт по умолчанию. Я пробовал различные варианты установки NamedVirtualHost на IP, ServerName на IP, UseCanonicalName off, VirualHost и т. Д. Все, что я делаю, не производит никаких изменений. Да, я перезагружаю конфиг каждый раз.
Я также попытался отключить брандмауэр, и я получил тот же результат. Я также сделал несколько изменений в файле /etc/hosts.
/ и т.д. / хосты:
127.0.0.1 localhost
10.10.58.1 myhost
24.89.xxx.xxx www.inusedomain.org
2 ответа
Читая более внимательно, я думаю, что это может быть проблема php. Как правило, вам нужно установить своего рода "базовый URL" в конфигурации для веб-сайта, чтобы php знал, как создать все ссылки ("Перезаписать URL-адреса"). Найдите файл config.php или что-то подобное в корневом каталоге сайта.
Если у вас плохие разработчики, это может быть не в одной переменной, а везде. Чтобы найти это или, возможно, найти его в одном месте, используйте grep -Ri --include='*.php*' 'localhost' *
, изменяя localhost на то, что сейчас перезаписывается.
Не полный ответ:
Я не совсем уверен, но мне кажется, что я помню, что привязка виртуального хоста к определенному IP или изменение директивы listen требовали полного перезапуска, а не просто постепенного перезапуска или перезагрузки конфигурации.
Я могу гарантировать, что проблема не в Apache. Вы должны смотреть на то, что производит ваш HTML-контент... т.е. php и т. д.