Редирект по $_SERVER['HTTP_HOST'] с двойным условием

12
jcrush
На сайте с 04.07.2004
Offline
371
1444

собственно нужно перенаправлять 301 на другой урл, если человек зашол не туда куда нужно, это понятно:

if ($_SERVER['HTTP_HOST']!='domen')

{
header("HTTP/1.1 301 Moved Permanently");
header("Location: domen");
exit();
}

но как сделать подобное чтобы выполнялось два домена?

domen и sub.domen

не работает:(

if ($_SERVER['HTTP_HOST']!='domen' or $_SERVER['HTTP_HOST']!='sub.domen')

{
header("HTTP/1.1 301 Moved Permanently");
header("Location: domen");
exit();
}

т.е.

если юзер зашел на не правильный домен domen или субдомен sub.domen то делаем редирект, по очереди тоже не получается с двойным аналогично зацикливается..

» Блог (http://blog.stfw.ru/) - SEO-заметки. ДВчат: @dvchat (https://t.me/dvchat)
TO
На сайте с 21.09.2007
Offline
170
#1
***91;

а зачем так квадратные скобки записываете?

Попробуйте вместо or использовать ||.

Если не сработает, вместо редиректа сделайте echo какой-нибудь лабуды и посмотрите, при каких условиях этот if срабатывает, а при каких нет.

S1
На сайте с 13.03.2008
Offline
49
#2

or замените на &&

Дизайн сайтов (UI/UX), логотипов, баннеров и прочего... (/ru/forum/770062)
jcrush
На сайте с 04.07.2004
Offline
371
#3
t_o_x_a:
а зачем так квадратные скобки записываете?
.

это не я это форум покоцал

тоже самое..

Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

echo выводиться нормально

---------- Добавлено 07.03.2012 в 18:48 ----------

smart1k:
or замените на &&

тоже самое

S1
На сайте с 13.03.2008
Offline
49
#4

if ($_SERVER['HTTP_HOST']!='domen' && $_SERVER['HTTP_HOST']!='sub.domen')

{

header("HTTP/1.1 301 Moved Permanently");

header("Location: domen");

exit();

}

jcrush
На сайте с 04.07.2004
Offline
371
#5

скорее всего, но дело вот в чем, есть сайт с кучей поддоменов, так случилось они вошли в индекс, при том вошли десятки поддоменов с дублями, нужно сделать редирект только на один субдомен, но при этом не трогая два - домен и субдомен, первый вариант вполне рабочий, но он не трогает только один...

последний вариант не подходит.

---------- Добавлено 07.03.2012 в 18:58 ----------

хотя спасибо за идею.... можно просто перечислить ненужные субдомены..

TO
На сайте с 21.09.2007
Offline
170
#6
jcrush:
Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

Похоже, редирект зациклился.

DiAksID
На сайте с 02.08.2008
Offline
218
#7

а к .htaccess доступа что ли нет? и быстрее и логичнее через апач такое разруливать...

show must go on !!!...
jcrush
На сайте с 04.07.2004
Offline
371
#8

вариант тоже не сработал

if ($_SERVER['HTTP_HOST']!='domen' && $_SERVER['HTTP_HOST']!='sub.domen')

{

header("HTTP/1.1 301 Moved Permanently");

header("Location: domen");

exit();

}

так то пашет:

if ($_SERVER['HTTP_HOST']!='domen')

{

header("HTTP/1.1 301 Moved Permanently");

header("Location: domen");

exit();

}

zhitov
На сайте с 30.01.2005
Offline
219
#9

не $_SERVER['HTTP_HOST']!='domen'

а $_SERVER['HTTP_HOST']!=='domen'

в этом ошибка.

Строительные калькуляторы ( https://www.zhitov.com/ )
jcrush
На сайте с 04.07.2004
Offline
371
#10
DiAksID:
а к .htaccess доступа что ли нет? и быстрее и логичнее через апач такое разруливать...

конечно есть, но я не могу разрулить, это лишь часть условий, у сайта система субдоменов и 301 редирект я не знаю как поставить ибо урлы не отличаются, ведь не все нужно редиректить а лиш то что лишнее, а это только условиями по категориям получиться.

---------- Добавлено 07.03.2012 в 19:12 ----------

zhitov, оказался прав, спасибо )

12

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