Локлаьный и внешний адреса одного сайта

Ohotnik

Member
Joined
Nov 8, 2004
Messages
73
Reaction score
5
Age
37
Location
Коробка под мостом
Website
www.gts-promo.ru
Доброго времени суток, нужкен совет от знакомых с пхп людей, ситуайция такая:
есть сайт, в котором чётко и понятно прописанно:
define('SITE_URL', '_http://172.16.57.107');
по этому адерсу сайт доступен из локальной сети
однако недавно появился доступ в интернет и некий внешний IP, к которому был незамедлительно привязан домен :)
и тут такая ситуация:
когда человек не из стеи заходит на сайт, допустим _http://bobruisk.ru, егоупорно пытаются засунуть на _http://172.16.57.107, что естесвенно не получается :)
Собственно вопрос: на что заменть _http://172.16.57.107 в строке define, чтобы сайт был доступен как из сети(по сетевому адресу), так и для интернета( по "внешнему") ?
 

jonjonson

Member
Joined
Mar 4, 2004
Messages
145
Reaction score
28
Age
52
Нахрена это дефайн так и не понял (в линках что ли прописывается?). Доступом к сайту должен управлять апач (или какой другой http сервер). Прописывание сервера в линках вообще не нужно. Сам сайт настраивается на внешний IP. Внутри сетки в файлах host прописывается соответсвие внешнего IP (на котором http сервер ждет запрпосов) доменному имени. Соответсвенно, что в интранетовской, что в интернетовской сетках доступ будет осуществлятся по доменному имени.

А вот с этой фигней (define('SITE_URL', '_http://172.16.57.107');), а именно ее назначении нужно разобраться. В чем ее магический смысл?
 

Ohotnik

Member
Joined
Nov 8, 2004
Messages
73
Reaction score
5
Age
37
Location
Коробка под мостом
Website
www.gts-promo.ru
А фишка в том, что define используется в движке сайта (XOOPS 2.0.13), и задаётся значение при утсановке самого движка, и далее в коде ссылки идут такого типа:
<a href="<{$Site_url}>/viewpmsg.php">
а вот <{$Site_url}> какраз и обявляется у нас в define
вот такая вот лажа
 

jonjonson

Member
Joined
Mar 4, 2004
Messages
145
Reaction score
28
Age
52
Вот и я говорю, что эта потстановка нафик не нужна :)
 

Vah

Member
Joined
May 8, 2005
Messages
142
Reaction score
5
Age
39
Location
Moscow
проблема решается вставкой переменной окружения HTTP_HOST т.е. надо заменить define('SITE_URL', '_http://172.16.57.107') на define('SITE_URL', $_SERVER["HTTP_HOST"])
и будит тебе щастье........
 

Ohotnik

Member
Joined
Nov 8, 2004
Messages
73
Reaction score
5
Age
37
Location
Коробка под мостом
Website
www.gts-promo.ru
Vah, а вот и не случилось щастья, пробовал так
собтвенно говоря всё это безобразие вертится на движке XOOPS и при замене на выше предложенно получаем, что с локального адреса не прогружается тема оформления, а с внешнего сайт отказывается грузится вообще.
Притом в коде наблюдается лишний / и ссылки выглядят типа http:///bla_bla_bla
 

Vah

Member
Joined
May 8, 2005
Messages
142
Reaction score
5
Age
39
Location
Moscow
незнаю как там xoops работает но HTTP_HOST содержит либо адрес либо доменное имя с которого обращаюццо........ мона попробовать http://$_SERVER["HTTP_HOST"]
и все должно получиццо....... у самого была такая хня, тоже делил на внешку и локалку...... у мну все работало на ура...... правда движок сам писал......

www.php.net said:
'HTTP_HOST'

Contents of the Host: header from the current request, if there is one.
 
Last edited by a moderator:

RomanbI4

Member
Joined
Sep 30, 2005
Messages
44
Reaction score
2
Age
42
Location
MZK Town
Может просто задать регулярным выражением?
<?
if(preg_match("#192\.168\.51\.\d+#",$REMOTE_ADDR))
{ // Если юзер с адресов 192.168.51.* (локальный)
define('SITE_URL', '_http://172.16.57.107');
}
else
{
// Иначе
define('SITE_URL', '_http://bobruisk.ru');
}
?>
 

Vah

Member
Joined
May 8, 2005
Messages
142
Reaction score
5
Age
39
Location
Moscow
тогда лучше смотреть не регом а переменную server_addr
<?
if($_SERVER["SERVER_ADDR"] === '172.16.57.107'){
// Если юзер с адресов 172.16.0.0 (локальный)
define('SITE_URL', '_http://172.16.57.107');
}elseif($_SERVER["SERVER_ADDR"] === '213.219.239.20'){
// Если с внешних ИП
define('SITE_URL', '_http://213.219.239.20');
}
?>

тока это избыточный код......
 

Ohotnik

Member
Joined
Nov 8, 2004
Messages
73
Reaction score
5
Age
37
Location
Коробка под мостом
Website
www.gts-promo.ru
Радость была не долгой, с кодом типа:
define('SITE_URL', '')
перестала работать регестрация, говорит не могу зарегить пользователя
:)
а
define('SITE_URL', $_SERVER["HTTP_HOST"])
вообще не открывает сайт притом линк в браузере такой
_http://172.16.57.107/$_SERVER["HTTP_HOST"]
 

Vah

Member
Joined
May 8, 2005
Messages
142
Reaction score
5
Age
39
Location
Moscow
странно ваще этот xoops работает........ хотя....... может где что сконфигурено не так или ещё чиво...... попробуй define('SITE_URL', $HTTP_SERVER_VARS["HTTP_HOST"]); или способ с if($_SERVER["SERVER_ADDR"] === '172.16.57.107')......
тока ИПы на свои корректно переправь...... т.е. внутренний и внешний......
 

jonjonson

Member
Joined
Mar 4, 2004
Messages
145
Reaction score
28
Age
52
Запусти скриптик с единственной функцией phpinfo(); и посмотри окружение, что бы не гадать с переменными.
А насчет регистрации... Хрен их знает, чего там накручено... Проверка рефереров, что-ли? Или куки по домену криво выставляются?..
 

Vah

Member
Joined
May 8, 2005
Messages
142
Reaction score
5
Age
39
Location
Moscow
define('XOOPS_URL', 'http://'.$HTTP_HOST); == define('SITE_URL', "http://".$_SERVER["HTTP_HOST"]) == define('SITE_URL', "http://".$HTTP_SERVER_VARS["HTTP_HOST"]);
тока у тебя - это с включенными register_globals..... т.е. register_globals on

С переменными уже за ниво и phpinfo() посмотрели и мануал почитали по пхп где это написано........

Непонятно почему хупс глючит....... видимо не только там это прописываеццо....... что-то там "паленным" пахнет.......... самому в хупсах всяких разгребаццо лень......
 

Ohotnik

Member
Joined
Nov 8, 2004
Messages
73
Reaction score
5
Age
37
Location
Коробка под мостом
Website
www.gts-promo.ru
Щас попробую покопатся в модулях, кроме регестраци отказывается входить в админку :)
и надо попробоватьустаноить другую версию. Может там реализованна поддежка двух "доменов" так сказать или заработает что-то из выше сказанного :)
 

Ohotnik

Member
Joined
Nov 8, 2004
Messages
73
Reaction score
5
Age
37
Location
Коробка под мостом
Website
www.gts-promo.ru
Хм, в версия движка 2.2.х всё он при устанвоке не привязывается к конкретному адресу, и в строке define просто ('XOOPS_URL', '/') , однако в моём случае это не прокатывает, будем копать дальше...
 
Last edited by a moderator:

Ohotnik

Member
Joined
Nov 8, 2004
Messages
73
Reaction score
5
Age
37
Location
Коробка под мостом
Website
www.gts-promo.ru
Попробовал все предложенные варианты и из всех(!) прошел тока define('SITE_URL', "http://".$_SERVER["HTTP_HOST"]) старых глюков не замеченно :)
Всё, пора завязывать с ксупсом
Всем спасибо за помощь :)
 
Top