[задача] Относительная переадресация в motd.txt

Обсуждаем все, что относится к выделенным серверам *NIX (Unix, Linux) и Windows
Сообщение
Автор
Аватара пользователя
U#0
Майор
Майор
Сообщения: 529
Зарегистрирован: 25.10.2007
Поблагодарили: 1 раз
Контактная информация:

#1 Сообщение 01.12.2009, 13:36

Условия:
  1. Платформа *nix.
  2. Игровой и http серверы находятся на одной машине.
  3. Машина видна из локальной сети и интернет с разными IP.
  4. Локальным пользователям недоступен внешний IP и соответственно наоборот.
  5. Абсолютный путь к файлу motd.txt игрового сервера:[frame]/1/2/3/4/motd.txt[/frame]
  6. Абсолютный путь к файлу 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 раз.
Причина: Это вообще о чём?

Ответить