Обсуждаем все, что относится к выделенным серверам *NIX (Unix, Linux) и Windows
-
U#0
- Майор
- Сообщения: 529
- Зарегистрирован: 25.10.2007
- Поблагодарили: 1 раз
-
Контактная информация:
#1
Сообщение
01.12.2009, 13:36
Условия:- Платформа *nix.
- Игровой и http серверы находятся на одной машине.
- Машина видна из локальной сети и интернет с разными IP.
- Локальным пользователям недоступен внешний IP и соответственно наоборот.
- Абсолютный путь к файлу motd.txt игрового сервера:[frame]/1/2/3/4/motd.txt[/frame]
- Абсолютный путь к файлу motd.php на который необходимо реализовать переадресацию:[frame]/5/www/localhost/htdocs/6/7/motd.php[/frame]
Задача:- Реализовать переадресацию в файле motd.txt игрового сервера таким образом, чтобы она работала на обоих IP.
Раньше мне как-то удавалось решить эту задачу именно через motd.txt, но хоть убей не помню как.
-
Dr_Quake
- Майор
- Сообщения: 654
- Зарегистрирован: 10.03.2008
- Поблагодарили: 6 раз
-
Контактная информация:
#2
Сообщение
01.12.2009, 13:43
js на странице должны работать.
-
Jonny
- Полковник
- Сообщения: 1371
- Зарегистрирован: 30.05.2008
- Благодарил (а): 23 раза
- Поблагодарили: 54 раза
#3
Сообщение
01.12.2009, 13:43
Сам motd отключить.
Вместо него плаг - определение клиентского IP. Если из локалки, то даем ему motd с локальным адресом (если это АМХХ, то функция show_motd), если из инета, то соответственно с внешним адресом.
-
U#0
- Майор
- Сообщения: 529
- Зарегистрирован: 25.10.2007
- Поблагодарили: 1 раз
-
Контактная информация:
#4
Сообщение
01.12.2009, 13:48
Извиняюсь, поправил:
U#0 писал(а):Раньше мне как-то удавалось решить эту задачу именно через motd.txt, но хоть убей не помню как.
-
Jonny
- Полковник
- Сообщения: 1371
- Зарегистрирован: 30.05.2008
- Благодарил (а): 23 раза
- Поблагодарили: 54 раза
#5
Сообщение
01.12.2009, 13:57
Может быть через .htaccess редирект для диапазона адресов
-
U#0
- Майор
- Сообщения: 529
- Зарегистрирован: 25.10.2007
- Поблагодарили: 1 раз
-
Контактная информация:
#6
Сообщение
01.12.2009, 14:00
Думешь игровому серверу есть дело до .htaccess лежащего в его директории?
-
Jonny
- Полковник
- Сообщения: 1371
- Зарегистрирован: 30.05.2008
- Благодарил (а): 23 раза
- Поблагодарили: 54 раза
#7
Сообщение
01.12.2009, 14:13
motd открывается обычным осликом на стороне клиента, если это мотд с веб сервера.
клиента никто не спрашивает есть ему дело до .htaccess или нету
блин допер, не сработает
Последний раз редактировалось
Jonny 01.12.2009, 14:49, всего редактировалось 1 раз.
-
Pr0Ger
- Модератор
- Сообщения: 1829
- Зарегистрирован: 16.01.2009
- Благодарил (а): 17 раз
- Поблагодарили: 214 раз
-
Контактная информация:
#8
Сообщение
01.12.2009, 14:35
возможно можно сделать проще, но мне пришло в голову такое решение:
делается файл redirect.php, который определяет ip и делает redirect на нужную страницу
в самом motd два iframe, один по <local ip>/redirect.php, другой <внешний ip>/redirect.php
один из фреймов не откроется (ибо ip не доступен), а другой откроется, и сделает правильный редирект
-
Jonny
- Полковник
- Сообщения: 1371
- Зарегистрирован: 30.05.2008
- Благодарил (а): 23 раза
- Поблагодарили: 54 раза
#9
Сообщение
01.12.2009, 14:47
Pr0Ger писал(а):один из фреймов не откроется (ибо ip не доступен),
это даст большую задержку на ожидание
-
Dr_Quake
- Майор
- Сообщения: 654
- Зарегистрирован: 10.03.2008
- Поблагодарили: 6 раз
-
Контактная информация:
#10
Сообщение
01.12.2009, 14:51
Это ничего не даст потому что php там работать не будет, а вызов внешнего скрипта ведёт нас к тому что вызывать его универсально неоткуда - с внешки или нет клиент не определено к тому моменту. Только JS.
-
U#0
- Майор
- Сообщения: 529
- Зарегистрирован: 25.10.2007
- Поблагодарили: 1 раз
-
Контактная информация:
#11
Сообщение
01.12.2009, 16:59
По идее должен работать (и прекрасно работает в *.php файле):
Код: Выделить всё
<?php $url = $_SERVER['SERVER_NAME']; ?>
<html>
<head>
<meta http-equiv="refresh" content="0; url=<?php echo "http://".$url."/6/7/motd.php"; ?>">
</head>
</html>
Только вот motd.txt не не хочет обрабатывать php код.
Зато работает:
Код: Выделить всё
<html>
<head>
<meta http-equiv="refresh" content="0; url=<?php echo "http://#.#.#.#/6/7/motd.php"; ?>">
</head>
</html>
Где #.#.#.# - IP.
Только вот IP должны быть разными.
-
Jonny
- Полковник
- Сообщения: 1371
- Зарегистрирован: 30.05.2008
- Благодарил (а): 23 раза
- Поблагодарили: 54 раза
#12
Сообщение
01.12.2009, 17:30
По моему через плагин - и просто и логично. Но, как говорится, хозяин барин.
-
U#0
- Майор
- Сообщения: 529
- Зарегистрирован: 25.10.2007
- Поблагодарили: 1 раз
-
Контактная информация:
#13
Сообщение
01.12.2009, 17:49
Вопрос в универсальности решения.
-
Pr0Ger
- Модератор
- Сообщения: 1829
- Зарегистрирован: 16.01.2009
- Благодарил (а): 17 раз
- Поблагодарили: 214 раз
-
Контактная информация:
#14
Сообщение
01.12.2009, 17:58
U#0 писал(а):По идее должен работать (и прекрасно работает в *.php файле):
Код: Выделить всё
<?php $url = $_SERVER['SERVER_NAME']; ?>
<html>
<head>
<meta http-equiv="refresh" content="0; url=<?php echo "http://".$url."/6/7/motd.php"; ?>">
</head>
</html>
Только вот motd.txt не не хочет обрабатывать php код.
ты пихаешь php код в motd.txt? RTFM! он там и не должен работать, ибо php исполняется на стороне сервера, и клиенту отдается уже готовая страница, а тут он просто выдаст код на страницу
на клиентской стороне можно сделать через Java Script, правда как там определить внешний ip непонятно (если только пытаться обратиться к ресурсу, доступному из локалки, но не доступному из внешней сети, и если ресурс доступен, то редирект на локальный, иначе на внешний)
Последний раз редактировалось
U#0 01.12.2009, 17:58, всего редактировалось 2 раза.
Причина: Я же не написал, что для меня это новость. Просто констатировал факт.
-
Dr_Quake
- Майор
- Сообщения: 654
- Зарегистрирован: 10.03.2008
- Поблагодарили: 6 раз
-
Контактная информация:
#15
Сообщение
01.12.2009, 19:54
Зато теперь понятно почему сервер цсмании лежит часто :)
Последний раз редактировалось
U#0 01.12.2009, 22:15, всего редактировалось 1 раз.
Причина: Это вообще о чём?