Вход на сайт
.php header - Location
742
12.10.08 23:17
Всем привет!
Может кто то знает решение к вопросу?
Есть файл index.php который перекидывает посетителя на другую траекторию.
<?php
header("Location: zahar/news/index.php");
?>
Можно ли встроить "устойчивую" рутину которая распознаёт какая из 2 домен набрана и соответственно перекидывает на соответствующу траекторию
типа:
<?php
if url=zahar.de or www.zahar.de;
header("Location: zahar/news/index.php");
else header("Location: bigmir/news/index.php");
?>
сам к сажалению не программист, надеюсь я понятно разъяснил...
Буду признателен за совет!
С уваженеим
Роман
Может кто то знает решение к вопросу?
Есть файл index.php который перекидывает посетителя на другую траекторию.
<?php
header("Location: zahar/news/index.php");
?>
Можно ли встроить "устойчивую" рутину которая распознаёт какая из 2 домен набрана и соответственно перекидывает на соответствующу траекторию
типа:
<?php
if url=zahar.de or www.zahar.de;
header("Location: zahar/news/index.php");
else header("Location: bigmir/news/index.php");
?>
сам к сажалению не программист, надеюсь я понятно разъяснил...
Буду признателен за совет!
С уваженеим
Роман
NEW 13.10.08 20:39
в ответ Zahar 12.10.08 23:17
Насчёт php не скажу но можно сделать протым JavaScript:
<script type="text/javascript">
var httphost = document.location.hostname.replace(/www./,"");
switch(httphost) {
case "ihre-bildergalerie.de":
document.location = " /meineHomepage/Bildergalerie ";
break;
case "ihre-webhosting-domain.de":
document.location = " /ihre-webhosting-domain";
break;
}
</script>
<script type="text/javascript">
var httphost = document.location.hostname.replace(/www./,"");
switch(httphost) {
case "ihre-bildergalerie.de":
document.location = " /meineHomepage/Bildergalerie ";
break;
case "ihre-webhosting-domain.de":
document.location = " /ihre-webhosting-domain";
break;
}
</script>
Создание сайтов, онлайн-магазинов в Германии
NEW 29.10.08 17:55
Для захара.
На пхп будет проще, и сработает всегда, так как проверка идёт на хосте, в отличии от ява скрипта, который может быть и отключен в браузере.
<?php
$url=$_SERVER['HTTP_HOST'];
if ($url=='zahar.de') header("Location: zahar/news/index.php"); else header("Location: bigmir/news/index.php");
?>
Для мурки. ;)
По сути, должен этот же код подойти, хотя не разу не проверял с айпи, но так или наче $_SERVER['HTTP_HOST'] получает имя хоста, и если имя реальный айпи, то по идеи тоже должно выдать как айпи, а значить нужно и в проверку подставить айпи.
На пхп будет проще, и сработает всегда, так как проверка идёт на хосте, в отличии от ява скрипта, который может быть и отключен в браузере.
<?php
$url=$_SERVER['HTTP_HOST'];
if ($url=='zahar.de') header("Location: zahar/news/index.php"); else header("Location: bigmir/news/index.php");
?>
Для мурки. ;)
По сути, должен этот же код подойти, хотя не разу не проверял с айпи, но так или наче $_SERVER['HTTP_HOST'] получает имя хоста, и если имя реальный айпи, то по идеи тоже должно выдать как айпи, а значить нужно и в проверку подставить айпи.
NEW 30.10.08 22:26
в ответ Sergo2008 29.10.08 17:55
Привет Серго,
очень хорошая идея php применить!
Но где-то в скрипте ошибка, как не пробовал, выдаёт ошибку.
Warning: Cannot add header information - headers already sent by (output started at /mnt/web1/12/18/5509818/htdocs/index.php:3) in /mnt/web1/12/18/5509818/htdocs/index.php on line 3
Хотел спросить в каком случае у пользователя отключены Jawa Настройки?
<script type="text/javascript">
var httphost = document.location.hostname.replace(/www./,"");
switch(httphost) {
case "zahar.de":
document.location = "/zahar/news/index.php";
break;
case "bigmir.de":
document.location = "http://www.zahar.de/bigmir/news/index.php";
break;
}
</script>
очень хорошая идея php применить!
Но где-то в скрипте ошибка, как не пробовал, выдаёт ошибку.
Warning: Cannot add header information - headers already sent by (output started at /mnt/web1/12/18/5509818/htdocs/index.php:3) in /mnt/web1/12/18/5509818/htdocs/index.php on line 3
Хотел спросить в каком случае у пользователя отключены Jawa Настройки?
<script type="text/javascript">
var httphost = document.location.hostname.replace(/www./,"");
switch(httphost) {
case "zahar.de":
document.location = "/zahar/news/index.php";
break;
case "bigmir.de":
document.location = "http://www.zahar.de/bigmir/news/index.php";
break;
}
</script>
NEW 30.10.08 22:57
в ответ Zahar 30.10.08 22:26
http://phpfaq.ru/headers
суть. до header() У тебя не должно ничего распечатываться.
1
2
...
Если у тебя все таки 1 вариант,
то проверь нету ли пробела перед тегом <?php.
суть. до header() У тебя не должно ничего распечатываться.
1
В ответ на:
<?
header(###########);
echo "bla bla bla";
?>
Правильно<?
header(###########);
echo "bla bla bla";
?>
2
В ответ на:
<?
echo "bla bla bla";
header(###########);
?>
Неправильно<?
echo "bla bla bla";
header(###########);
?>
...
Если у тебя все таки 1 вариант,
то проверь нету ли пробела перед тегом <?php.
NEW 30.10.08 23:25
в ответ Kastrator 30.10.08 22:57
Пробел убрал!
Ещё чуть чуть до истины!
Сейчас при наборе наборе двух домен перекидывает на http://www.zahar.de/bigmir/news/index.php почему-то.
предложенный исходник
<?php
$url=$_SERVER['HTTP_HOST'];
if ($url=='zahar.de') header("Location: http://www.zahar.de/zahar/news/index.php");
else header("Location: http://www.zahar.de/bigmir/news/index.php");
?>
Ещё чуть чуть до истины!

Сейчас при наборе наборе двух домен перекидывает на http://www.zahar.de/bigmir/news/index.php почему-то.
предложенный исходник
<?php
$url=$_SERVER['HTTP_HOST'];
if ($url=='zahar.de') header("Location: http://www.zahar.de/zahar/news/index.php");
else header("Location: http://www.zahar.de/bigmir/news/index.php");
?>
NEW 30.10.08 23:46
в ответ Sergo2008 29.10.08 17:55
и если имя реальный айпи, то по идеи тоже должно выдать как айпи, а значить нужно и в проверку подставить айпи.
------
Еще немного и наконец будет осознан момент на который Я пытаюсь указать. :)
Чтобы было над чем подумать - есть файлик hosts и в нем можно прописать _любое_ соответствие между именем хоста и ИП...
------
Еще немного и наконец будет осознан момент на который Я пытаюсь указать. :)
Чтобы было над чем подумать - есть файлик hosts и в нем можно прописать _любое_ соответствие между именем хоста и ИП...
NEW 31.10.08 07:21
<?php
$url=$_SERVER['HTTP_HOST'];
if ($url=='zahar.de') {header("Location: http://www.zahar.de/zahar/news/index.php");}
else{ header("Location: http://www.zahar.de/bigmir/news/index.php");}
?>
На всякий случай скобки,
Просто проверь что у тебя выдает $url=$_SERVER['HTTP_HOST']; в первом и во втором случаях
(echo $_SERVER['HTTP_HOST'] )
И я как то думаю, что надо юзать eregi http://de.php.net/manual/de/function.eregi.php
if (eregi('zahar.de',url)){###############}....
$url=$_SERVER['HTTP_HOST'];
if ($url=='zahar.de') {header("Location: http://www.zahar.de/zahar/news/index.php");}
else{ header("Location: http://www.zahar.de/bigmir/news/index.php");}
?>
На всякий случай скобки,
Просто проверь что у тебя выдает $url=$_SERVER['HTTP_HOST']; в первом и во втором случаях
(echo $_SERVER['HTTP_HOST'] )
И я как то думаю, что надо юзать eregi http://de.php.net/manual/de/function.eregi.php
if (eregi('zahar.de',url)){###############}....
NEW 31.10.08 07:58
в ответ Kastrator 31.10.08 07:21
при
<?php
$url=$_SERVER['HTTP_HOST'];
if ($url=='zahar.de') {header("Location: http://www.zahar.de/zahar/news/index.php");}
else{ header("Location: http://www.zahar.de/bigmir/news/index.php");}
?>
в обоих случаях перекидывал на http://www.zahar.de/bigmir/news/index.php
###
добавил в 3-й строчке www.zahar.de
<?php
$url=$_SERVER['HTTP_HOST'];
if ($url=='www.zahar.de') {header("Location: http://www.zahar.de/zahar/news/index.php");}
else{ header("Location: http://www.zahar.de/bigmir/news/index.php");}
?>
все тесты вроде работают
http://www.zahar.de
http://zahar.de
и
http://www.bigmir.de
http://bigmir.de
Теперь есть два работающих варианта!
Спасибо!!!
<?php
$url=$_SERVER['HTTP_HOST'];
if ($url=='zahar.de') {header("Location: http://www.zahar.de/zahar/news/index.php");}
else{ header("Location: http://www.zahar.de/bigmir/news/index.php");}
?>
в обоих случаях перекидывал на http://www.zahar.de/bigmir/news/index.php
###
добавил в 3-й строчке www.zahar.de
<?php
$url=$_SERVER['HTTP_HOST'];
if ($url=='www.zahar.de') {header("Location: http://www.zahar.de/zahar/news/index.php");}
else{ header("Location: http://www.zahar.de/bigmir/news/index.php");}
?>
все тесты вроде работают
http://www.zahar.de
http://zahar.de
и
http://www.bigmir.de
http://bigmir.de
Теперь есть два работающих варианта!
Спасибо!!!
NEW 31.10.08 10:24
в ответ Zahar 31.10.08 07:58
Походу и без меня уже разобрались. :)
Zahar, там в примере я просто взял ссылки из того что ты привёл, не обратив внимания что ссылка не полная. Со скобками конечно правильней, но они не обязательны, я ставлю скобки если после проверки больше одного выражения, тоесть как в твоём случае.
Насчет if ($url=='www.zahar.de'), тут я думаю лучше будет сделать так if (($url=='www.zahar.de')||($url=='zahar.de')), для более точной проверки. А по поводу $url=$_SERVER['HTTP_HOST'];, она передаёт в переменную тот адрес, какой есть, тоесть если адрес без www, то и передаст без www.
Для Murr
$_SERVER['HTTP_HOST'] получает тот адрес, что отображается в адресной строке, тоесть, тот что передаёт сервер. Если в файле hosts прописать для данного айпи имя хоста, то оно будет выводиться вместо айпи в адресной строке, и также приниматься и $_SERVER['HTTP_HOST'].
Покрайней мере я так думаю, я не большой спец в пхп, со 100% уверенностью сказать не могу, так как не проверял такое.
В любом случае можно проверить это так:
<?php
$url=$_SERVER['HTTP_HOST'];
if (($url=='129.168.0.5')||($url=='www.mypage.ru')||($url=='mypage.ru')) echo '$url';
?>
Zahar, там в примере я просто взял ссылки из того что ты привёл, не обратив внимания что ссылка не полная. Со скобками конечно правильней, но они не обязательны, я ставлю скобки если после проверки больше одного выражения, тоесть как в твоём случае.
Насчет if ($url=='www.zahar.de'), тут я думаю лучше будет сделать так if (($url=='www.zahar.de')||($url=='zahar.de')), для более точной проверки. А по поводу $url=$_SERVER['HTTP_HOST'];, она передаёт в переменную тот адрес, какой есть, тоесть если адрес без www, то и передаст без www.
Для Murr
В ответ на:
Еще немного и наконец будет осознан момент на который Я пытаюсь указать. :)
Чтобы было над чем подумать - есть файлик hosts и в нем можно прописать _любое_ соответствие между именем хоста и ИП...
Еще немного и наконец будет осознан момент на который Я пытаюсь указать. :)
Чтобы было над чем подумать - есть файлик hosts и в нем можно прописать _любое_ соответствие между именем хоста и ИП...
$_SERVER['HTTP_HOST'] получает тот адрес, что отображается в адресной строке, тоесть, тот что передаёт сервер. Если в файле hosts прописать для данного айпи имя хоста, то оно будет выводиться вместо айпи в адресной строке, и также приниматься и $_SERVER['HTTP_HOST'].
Покрайней мере я так думаю, я не большой спец в пхп, со 100% уверенностью сказать не могу, так как не проверял такое.
В любом случае можно проверить это так:
<?php
$url=$_SERVER['HTTP_HOST'];
if (($url=='129.168.0.5')||($url=='www.mypage.ru')||($url=='mypage.ru')) echo '$url';
?>
NEW 31.10.08 22:50
в ответ Sergo2008 31.10.08 10:24
Это точно железно работающий код! 
<?php
$url=$_SERVER['HTTP_HOST'];
if (($url=='www.zahar.de')||($url=='zahar.de')) {header("Location: http://www.zahar.de/zahar/news/index.php");}
else{ header("Location: http://www.zahar.de/bigmir/news/index.php");}
?>
Java код пока скрыл
СПАСИБО!

<?php
$url=$_SERVER['HTTP_HOST'];
if (($url=='www.zahar.de')||($url=='zahar.de')) {header("Location: http://www.zahar.de/zahar/news/index.php");}
else{ header("Location: http://www.zahar.de/bigmir/news/index.php");}
?>
Java код пока скрыл

СПАСИБО!
NEW 01.11.08 02:51
в ответ Sergo2008 31.10.08 10:24
получает тот адрес, что отображается в адресной строке
-----
Это хорошо. Только вот ньюанс - в протоколе обмена нет никаких "адресных строк".
В том же протоколе указаны два обязательных элемента - имя запрашиваемого документа и признак окончания запроса.
Все остальное - опционально и строить что-то на его наличии... не есть мудро.
И проверяется очень просто - телнетом на HTTP-порт и GET ...
-----
Это хорошо. Только вот ньюанс - в протоколе обмена нет никаких "адресных строк".
В том же протоколе указаны два обязательных элемента - имя запрашиваемого документа и признак окончания запроса.
Все остальное - опционально и строить что-то на его наличии... не есть мудро.
И проверяется очень просто - телнетом на HTTP-порт и GET ...
NEW 01.11.08 07:08
в ответ Zahar 30.10.08 23:25
Это хотошо что работает
И кста, Редирект легче делать правя .htaccess
Redirect permanent /test http://www.test.com/
Redirect permanent / http://enter.test.com/
http://yandex.ru/yandsearch?text=redirect%2Bhtaccess

И кста, Редирект легче делать правя .htaccess
Redirect permanent /test http://www.test.com/
Redirect permanent / http://enter.test.com/
http://yandex.ru/yandsearch?text=redirect%2Bhtaccess
NEW 01.11.08 09:34
в ответ Kastrator 01.11.08 07:32
По .htaccess, не все хостеры допускают использование этого файла, так что редирект в .htaccess не везде можно сделать. Пример моих хостеров, один хостер вообще блокирует этот файл, другой разрешает настраивать свой через админку с жестко заданными возможностями, а третий, там я могу как хочу настраивать свой .htaccess. Вот и попробуй сделать редирект в .htaccess на первых двух хостах. ;)