доступ к странице только с определённого реферера

12
373
На сайте с 16.09.2009
Offline
78
373
1528

привет. короче надоело уже искать и пробовать. поэтому спрошу у вас.

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

т.е. есть ссылка http://url1.ru/123/. с неё идёт мгновенный htaccess редирект на http://url2.ru/456/. Redirect /123 http://url2.ru/456/

так вот, надо чтобы http://url2.ru/456/ открывалась только при редиректе с http://url1.ru/123/. а если любым другим способом обратиться к http://url2.ru/456/, то перекинет на http://url2.ru/404.shtml

по ходу чото связано с

RewriteEngine On

RewriteCond

RewriteRule

но ничо не насочинял в отсутствии знаний нужных.

Себя сначала измени – это первым делом. Ты никто с отравленной душой и убитым телом.
AlExTeam
На сайте с 12.08.2010
Offline
34
#1

Ну ты братишка и ленивое мурло.

В Инете как раз такого валом. Вчера рыл на предмет редиректа, и как раз было много по твоей теме.

Internet killed the video star
RM
На сайте с 21.06.2011
Offline
77
#2

А почему обязательно на htaccess(mod_rewrite)? На php куда легче:

if($_SERVER['HTTP_REFERER'] === 'тут реферер, который нужен') {
тут, то что будет если все верно(пришел с нужной страницы)
} else {
тут, то что будет есть пользователь пришел не с той страницы
}
373
На сайте с 16.09.2009
Offline
78
373
#3

RoMaN444Ik, у меня не работает. ошибки выдаёт.

по вашему указанию должно выглядеть так:

if($_SERVER['HTTP_REFERER'] === 'http://url1.ru/123/') {

http://url2.ru/456/

} else {

http://url2.ru/404.shtml

}

ну и подобное пробовал. с убиранием http, добавлением ковычек ..... покажите как правильно.

c header('location всегда редиректит на http://url2.ru/404.shtml

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4
ошибки выдаёт.

Ну и какая ошибка?

Так же посмотрите что в $_SERVER['HTTP_REFERER']

И ещё нафига тут ===? == достаточно.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
373
На сайте с 16.09.2009
Offline
78
373
#5

вот так ошибок нет, но всегда перекидывает на http://url2.ru/404.shtml

<?

if($_SERVER['HTTP_REFERER'] == 'http://url1.ru/123/') {

header('location: http://url2.ru/456/');

} else {

header('location: http://url2.ru/404.shtml');

}

?>

этот код в файле index.php, кторый лежит в папке http://url2.ru/456/

мне кажется тут не в значках проблема а в логике. обращаемся к http://url2.ru/456/ чтобы она или открыла сама себя или перекинула на http://url2.ru/404.shtml. когда она открывает сама себя, реферер уже не тот и кидает на else. не знаю. умные, подскажите.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#6

Ещё раз, вы посмотрите, что в $_SERVER['HTTP_REFERER'] находиться то.

В начале скрипта: die ($_SERVER['HTTP_REFERER']);

100% он там пустой.

[Удален]
#7

Попробуйте так:

<?

if(strpos (strtolower($_SERVER['HTTP_REFERER']), 'http://url1.ru/123/')===true) {

header('location: http://url2.ru/456/');

} else {

header('location: http://url2.ru/404.shtml');

}

?>

373
На сайте с 16.09.2009
Offline
78
373
#8
LEOnidUKG:
Ещё раз, вы посмотрите, что в $_SERVER['HTTP_REFERER'] находиться то.
В начале скрипта: die ($_SERVER['HTTP_REFERER']);

100% он там пустой.

как посмотреть? вставил в начало скрипта die ($_SERVER['HTTP_REFERER']);

открылась пустая страница http://url2.ru/456/

это значит реферер не передался?

редирект вот такой в папке http://url1.ru/123/

<?

$URL="http://url2.ru/456/";

header ("Location: $URL");

?>

373 добавил 09.11.2011 в 16:41

sasha_123:
Попробуйте так:

<?
if(strpos (strtolower($_SERVER['HTTP_REFERER']), 'http://url1.ru/123/')===true) {
header('location: http://url2.ru/456/');
} else {
header('location: http://url2.ru/404.shtml');
}
?>

аналогично на http://url2.ru/404.shtml во всех случаях кидает.

ещё у меня оба этих домена припаркованы к двум основным доменам. т.е. на основном домене тоже что и на припаркованном. какбы в одну директорию ведут. по адресу основной-домен-1.ru открывается припаркованный http://url1.ru, а по адресу основной-домен-2.ru открывается припаркованный http://url2.ru. мутно объясняю, но думаю все поняли) может чото из-за дополнительных перенаправлений на сервере??

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#9
открылась пустая страница

Как открыли то? Просто в закладку ввели адрес?

373
На сайте с 16.09.2009
Offline
78
373
#10
LEOnidUKG:
Как открыли то? Просто в закладку ввели адрес?

и редиректом и просто из адресной строки браузера

12

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