Переадресация по IP

Televizor
На сайте с 26.01.2008
Offline
55
693

Добрый день!

Помогите, пожалуйста, решить следующую проблему.

Имеется УРЛ следующего вида: http://domain.zone/dir/filename.ext

Существуют несколько диапазонов адресов вида xx.xxx.192.0/18. Можно ли на базе htaccess сделать следующую вещь:

Если REMOTE_ADDR входит в один из перечисленных диапазонов, то пользователю отдается URL http://anotherdomain.zone/dir/filename.ext. То есть подменяется только домен, весь остальной путь не меняется.

Заранее спасибо.

Televizor добавил 08.11.2008 в 14:09

Никто не подскажет?

Televizor
На сайте с 26.01.2008
Offline
55
#1

Вопрос еще актуален

T.R.O.N
На сайте с 18.05.2004
Offline
314
#2

Televizor,

Что мешает сделать обычным редиректом? Зачем мучать htaccess или подобное?

Просто в провереш переменную окружения REMOTE_ADDR и принимаеш решение о переадресации

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
Anarchist
На сайте с 23.07.2008
Offline
185
#3

согласен.

я канеш не кодер, но имхо что-то вроде того должно быть:


<?
if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') {header ("Location: mycoolsite.ru/mycoolpage.php"); exit; }
?>

ну а по-хорошему ip надо бы смареть так:


function getip()
{
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown"))
$ip = getenv("HTTP_CLIENT_IP");

elseif (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");

elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");

elseif (!empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];

else
$ip = "unknown";

return($ip);
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий