nerd
Новичок
header + mod_rewrite = зацикливание
Проблема состоит в следующем. Мне нужно сделать так, чтобы при попытке взять site.ru/1.mp3 незарегистрированные пользователи попадали на login.php, а зарегистрированные соответственно получали 1.mp3.
В качестве решения я решил прогонять все запросы на *.mp3 через скрипт (gate.php). Для этого я в httpd.conf прописываю следующее:
RewriteCond %{HTTP_REFERER} !^.*gate\.php.*$
RewriteRule /(.*)\.mp3 /gate.php?id=$1 [R,L]
gate.php выглядит примерно так:
Проблема в том, что RewriteCond %{HTTP_REFERER} !^.*gate\.php.*$ не отлавливает запросы на mp3 уже прошедшие через gate.php, так как при использовании header('Location..) в HTTP_REFERER не прописывается gate.php, как место откуда пришли за mp3, там остается та страница, с которой попали на gate.php. В результате это дело зацикливается.
Не вижу смысла расписывать тут все методы и варианты, которые я испробовал, я надеюсь, что кто-нибудь предложить заведомо работающее решение такой проблемы. Сразу оговорюсь, что меня интересует именно решение с "прогонянием" запросов на mp3 через скрипт, варианты решения задачи через .htaccess и файл паролей, либо через php fopen() не катят ввиду ущербности.

Проблема состоит в следующем. Мне нужно сделать так, чтобы при попытке взять site.ru/1.mp3 незарегистрированные пользователи попадали на login.php, а зарегистрированные соответственно получали 1.mp3.
В качестве решения я решил прогонять все запросы на *.mp3 через скрипт (gate.php). Для этого я в httpd.conf прописываю следующее:
RewriteCond %{HTTP_REFERER} !^.*gate\.php.*$
RewriteRule /(.*)\.mp3 /gate.php?id=$1 [R,L]
gate.php выглядит примерно так:
PHP:
if ($_SESSION['user']!=''){
header('Location: http://site.ru/'.$_GET['id'].'.mp3');
exit;
}
else {
header('Location: http://site.ru/login.php');
exit;
}
Не вижу смысла расписывать тут все методы и варианты, которые я испробовал, я надеюсь, что кто-нибудь предложить заведомо работающее решение такой проблемы. Сразу оговорюсь, что меня интересует именно решение с "прогонянием" запросов на mp3 через скрипт, варианты решения задачи через .htaccess и файл паролей, либо через php fopen() не катят ввиду ущербности.

