Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > ip в url сайта


Автор: lam0x7C4 20.4.2010, 11:09
Привет!

Ситуация следующая:
Есть сайт, который на машине разработчика работает корректно(разработчик использовал окружение denwer).
При развертывании на продакшн-машине с unix столкнулись со проблемой:
 на сайте большая часть ссылок/перенаправлений и пр. ссылаются по адресу, где фигурирует ip-сервера а не его зарегестрированное(буквально день назад) доменное имя, вследствии чего страницы/рисунки по таким url-ам адресам недоступны, и в результате сайт находится в нерабочем состоянии.

Можете взглянуть: http://ikt.in.ua/  smile

Не подскажете, в чем может быть проблема?
* вопрос может быть немножко глупым, но веб-разработкой до сего времени вообще не занимался, так что уж  извините 


Спасибо!
-----
[email protected]

Автор: skyboy 20.4.2010, 12:33
проблема, как ты сам отметил, в том, что адрес был прописан в URL явным образом. сменился компьютер - сменился и ip. как следствие, ссылки стали некорректными.
если углубиться, то надо было использовать только http://phpfaq.ru/paths. а для перенаправлений, где обязаны использоваться абсолютные URL, использовать не жестко заданную строку:
Код

 header('Location: http://google.com');

а использовать либо подстановку переменной
Код

 $hostname = 'google.com';
..............
 header('Location: http://' . $hostname . '');

либо данные из конфигурации сервера:
Код

 header('Location: http://' . $_SERVER['SERVER_NAME'] . '');


Автор: lam0x7C4 20.4.2010, 13:42
Ссылки везде относительные.

Автор: skyboy 20.4.2010, 17:01
Цитата(lam0x7C4 @  20.4.2010,  10:09 Найти цитируемый пост)
на сайте большая часть ссылок/перенаправлений и пр. ссылаются по адресу, где фигурирует ip-сервера а не его зарегестрированное

относительный путь преобразуется браузером в абсолютный по двум критериям:
0. по значению тега <base>(этого тега я в твоих страницах что-то не вижу)
1. по домену(или URL) текущей страницы(если URL начинается с "/" - он считается начинающимся с домена, если не с "/" - то считается относительно текущего пути; или наоборот?)
не понимаю, где у тебя могут быть проблемы "не с тем доменом".
приведу конкретную ссылку, где можно наблюдать проблему.

Автор: lam0x7C4 20.4.2010, 17:25
Например вот в этой страничке ссылки на рисунки почему-то неправильные
http://ikt.in.ua/index.php?option=com_remository&Itemid=39

Автор: bars80080 20.4.2010, 17:29
192.168... - это интересно. такое случайно не сделаешь.

а что в генерирующем коде? (пхп)

Автор: skyboy 20.4.2010, 18:06
Цитата

  <link href='http://192.168.81.8/components/com_remository/remository.css' rel='stylesheet' type='text/css' />

ну, вот. абсолютный URL, о чем я и писал. никакой мистики.
удалить "http://192.168.81.8" и все. есть программы, которые могут делать поиск/замену сразу во всех файлах определенного каталога. быстро и сердито.

Автор: lam0x7C4 20.4.2010, 18:15
Цитата(bars80080 @ 20.4.2010,  17:29)
192.168... - это интересно. такое случайно не сделаешь.

а что в генерирующем коде? (пхп)

да уж, специально не сделаешь. И что-то не помню, чтобы умышленно такое писал.

Генерирующий код буду смотреть когда уже вечером, как с работы приду.
 И потом уже скажу результат. Надеюсь, что он будет smile

Автор: lam0x7C4 20.4.2010, 21:22
Насколько я понял из беседы с администратором сервера проблема была из-за того, что движок joomla(именно на нем написан сайт) при генерации url-ов брал ip внутреннего веб-сервера, а не внешнего(там вроде такая система - один master-сервер, в котором как под виртуальными машинами(т.н. freebsd-jails) , бегают сервера для сайтов, мой на одном из них). Вобщем, админ подправил  smile  конфиг сервера(какого именно - не знаю) и все работает.

п.с. Тему можно считать закрытой.
п.п.с. если че-то сказал не так - поправте.

Автор: skyboy 20.4.2010, 21:41
lam0x7C4, сам и отметь тему решенной. 
ссылка справа вверху над первым твоим постом.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)