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

Ohotnik

Member
Joined
Nov 8, 2004
Messages
76
Reaction score
5
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
Нахрена это дефайн так и не понял (в линках что ли прописывается?). Доступом к сайту должен управлять апач (или какой другой http сервер). Прописывание сервера в линках вообще не нужно. Сам сайт настраивается на внешний IP. Внутри сетки в файлах host прописывается соответсвие внешнего IP (на котором http сервер ждет запрпосов) доменному имени. Соответсвенно, что в интранетовской, что в интернетовской сетках доступ будет осуществлятся по доменному имени.

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

Ohotnik

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

Ohotnik

Member
Joined
Nov 8, 2004
Messages
76
Reaction score
5
Website
www.gts-promo.ru
Во, всё починил, проблема решает следующим образом
меняем
define('SITE_URL', '_http://172.16.57.107')
на
define('SITE_URL', '')

:)
 

jonjonson

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

Vah

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

Ohotnik

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

Vah

Member
Joined
May 8, 2005
Messages
144
Reaction score
5
незнаю как там 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
45
Reaction score
2
Может просто задать регулярным выражением?
<?
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
144
Reaction score
5
тогда лучше смотреть не регом а переменную 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
76
Reaction score
5
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
144
Reaction score
5
странно ваще этот xoops работает........ хотя....... может где что сконфигурено не так или ещё чиво...... попробуй define('SITE_URL', $HTTP_SERVER_VARS["HTTP_HOST"]); или способ с if($_SERVER["SERVER_ADDR"] === '172.16.57.107')......
тока ИПы на свои корректно переправь...... т.е. внутренний и внешний......
 

Ohotnik

Member
Joined
Nov 8, 2004
Messages
76
Reaction score
5
Website
www.gts-promo.ru
Советовали прописать
define('XOOPS_URL', 'http://'.$HTTP_HOST);
но опять же не попёрло
 

jonjonson

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

Vah

Member
Joined
May 8, 2005
Messages
144
Reaction score
5
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
76
Reaction score
5
Website
www.gts-promo.ru
Щас попробую покопатся в модулях, кроме регестраци отказывается входить в админку :)
и надо попробоватьустаноить другую версию. Может там реализованна поддежка двух "доменов" так сказать или заработает что-то из выше сказанного :)
 

Ohotnik

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

Ohotnik

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

Vladi6767

Member
Joined
Sep 9, 2016
Messages
6
Reaction score
0
I think it's worth noting that in most cases, a local IP address will be different from the external one since it's assigned by your router, but I'm not sure if that's what you're getting at here. Can you provide more info about the site in question? Maybe we can dive deeper into the issue.
 
Top