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

  • Тут может быть ваша реклама

Ohotnik

Турист
Доброго времени суток, нужкен совет от знакомых с пхп людей, ситуайция такая:
есть сайт, в котором чётко и понятно прописанно:
define('SITE_URL', '_http://172.16.57.107');
по этому адерсу сайт доступен из локальной сети
однако недавно появился доступ в интернет и некий внешний IP, к которому был незамедлительно привязан домен :)
и тут такая ситуация:
когда человек не из стеи заходит на сайт, допустим _http://bobruisk.ru, егоупорно пытаются засунуть на _http://172.16.57.107, что естесвенно не получается :)
Собственно вопрос: на что заменть _http://172.16.57.107 в строке define, чтобы сайт был доступен как из сети(по сетевому адресу), так и для интернета( по "внешнему") ?
 

jonjonson

Турист
4 Мар 2004
145
10
53
52
Credits
0
Нахрена это дефайн так и не понял (в линках что ли прописывается?). Доступом к сайту должен управлять апач (или какой другой http сервер). Прописывание сервера в линках вообще не нужно. Сам сайт настраивается на внешний IP. Внутри сетки в файлах host прописывается соответсвие внешнего IP (на котором http сервер ждет запрпосов) доменному имени. Соответсвенно, что в интранетовской, что в интернетовской сетках доступ будет осуществлятся по доменному имени.

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

Ohotnik

Турист
А фишка в том, что define используется в движке сайта (XOOPS 2.0.13), и задаётся значение при утсановке самого движка, и далее в коде ссылки идут такого типа:
<a href="<{$Site_url}>/viewpmsg.php">
а вот <{$Site_url}> какраз и обявляется у нас в define
вот такая вот лажа
 

Vah

Турист
8 Май 2005
142
1
43
39
Moscow
Credits
0
проблема решается вставкой переменной окружения HTTP_HOST т.е. надо заменить define('SITE_URL', '_http://172.16.57.107') на define('SITE_URL', $_SERVER["HTTP_HOST"])
и будит тебе щастье........
 

Ohotnik

Турист
Vah, а вот и не случилось щастья, пробовал так
собтвенно говоря всё это безобразие вертится на движке XOOPS и при замене на выше предложенно получаем, что с локального адреса не прогружается тема оформления, а с внешнего сайт отказывается грузится вообще.
Притом в коде наблюдается лишний / и ссылки выглядят типа http:///bla_bla_bla
 

Vah

Турист
8 Май 2005
142
1
43
39
Moscow
Credits
0
незнаю как там xoops работает но HTTP_HOST содержит либо адрес либо доменное имя с которого обращаюццо........ мона попробовать http://$_SERVER["HTTP_HOST"]
и все должно получиццо....... у самого была такая хня, тоже делил на внешку и локалку...... у мну все работало на ура...... правда движок сам писал......

www.php.net написал(а):
'HTTP_HOST'

Contents of the Host: header from the current request, if there is one.
 
Последнее редактирование модератором:

RomanbI4

Турист
30 Сен 2005
44
2
13
42
MZK Town
Credits
0
Может просто задать регулярным выражением?
<?
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

Турист
8 Май 2005
142
1
43
39
Moscow
Credits
0
тогда лучше смотреть не регом а переменную 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

Турист
Радость была не долгой, с кодом типа:
define('SITE_URL', '')
перестала работать регестрация, говорит не могу зарегить пользователя
:)
а
define('SITE_URL', $_SERVER["HTTP_HOST"])
вообще не открывает сайт притом линк в браузере такой
_http://172.16.57.107/$_SERVER["HTTP_HOST"]
 

Vah

Турист
8 Май 2005
142
1
43
39
Moscow
Credits
0
странно ваще этот xoops работает........ хотя....... может где что сконфигурено не так или ещё чиво...... попробуй define('SITE_URL', $HTTP_SERVER_VARS["HTTP_HOST"]); или способ с if($_SERVER["SERVER_ADDR"] === '172.16.57.107')......
тока ИПы на свои корректно переправь...... т.е. внутренний и внешний......
 

jonjonson

Турист
4 Мар 2004
145
10
53
52
Credits
0
Запусти скриптик с единственной функцией phpinfo(); и посмотри окружение, что бы не гадать с переменными.
А насчет регистрации... Хрен их знает, чего там накручено... Проверка рефереров, что-ли? Или куки по домену криво выставляются?..
 

Vah

Турист
8 Май 2005
142
1
43
39
Moscow
Credits
0
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() посмотрели и мануал почитали по пхп где это написано........

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