С нами с 12.04.03
Сообщения: 93
Рейтинг: 85
|
Добавлено: 02/04/09 в 10:02 |
Хочется средствами mod_rewrite отслеживать людей кто откуда первый раз пришел на сайт. В куки писать HTTP_REFERER если еще нет такой куки.
Что то типа
Код: | RewriteEngine On
RewriteCond %{HTTP_COOKIE}!^.*first_referer.*$ [AND]
RewriteCond %{HTTP_REFERER} ^.*://([^:]+)$
RewriteRule ^([^:]+)$ - [CO=first_referer:%1:.домен.com:600000000:/] |
Но это у меня не пытается даже работать, т.к.
Apache старый-1.3.33 и параметр СО не знает, да в самой конструкции я не уверен.
Может есть еще какой вариант повесить куку?
Вариант с JavaScript не подойдет, т.к. в первый раз могут не только страницу, но и другие типы файлов дергать(exe,zip).
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 02/04/09 в 10:41 |
Последнюю строку заменить на редирект на URL, в котором будет CGI или PHP, все, что он делает - это подсовывает куку и редиректит затем на оригинальый URL, на который человек пришел.
|
|
|
|
С нами с 12.04.03
Сообщения: 93
Рейтинг: 85
|
Добавлено: 02/04/09 в 10:48 |
Дык хочется без редиректа, что бы со стороны ничего не было видно
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 02/04/09 в 10:57 |
Тогда только искать на modules.apache.org модуль, который умеет куки подсовывать - для старой версии. Или самому написать. Или кому-то заплатить, чтобы написали. Или проапгрейдить апач до 2.2, наконец.
Больше - никак.
|
|
|
|
С нами с 13.11.06
Сообщения: 777
Рейтинг: 418
|
Добавлено: 03/04/09 в 00:58 |
А зачем это ваще делать через мод рерайт а не средствами пхп ?
|
|
|
|
С нами с 12.04.03
Сообщения: 93
Рейтинг: 85
|
Добавлено: 03/04/09 в 06:53 |
А как можно средствами пхп подсадить куку при запросе zip или exe файла?
|
|
|
|
С нами с 23.03.09
Сообщения: 9
Рейтинг: 1
|
Добавлено: 03/04/09 в 07:31 |
Отдавать файл через php, что не есть гут.
Либо если куки нет редиректить на php, ставить куку и редиректить обратно на файл, что тоже через жопу
|
|
|
|
С нами с 12.04.03
Сообщения: 93
Рейтинг: 85
|
Добавлено: 03/04/09 в 10:11 |
Пока предварительный вариант такой
.htaccess
Код: |
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} 200 # Что бы не зациклилось
RewriteRule .* - [L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !\.(pl|cgi|png|js|css|ico)$ [NC] #Исключения
RewriteCond %{HTTP_COOKIE} !^.*first_referer.*$
RewriteCond %{HTTP_REFERER} ^.*://([^:]+)$
RewriteRule ^.*$ /cgi-bin/redir.pl [L]
|
redir.pl
Код: | ..
print "Set-Cookie: first_referer=$ref; paht=/; expires=$cooktime\n";
print "Location: $ENV{'REQUEST_URI'}\n\n";
.. |
Тоже конечно через жопу
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 03/04/09 в 14:41 |
Поставь mod_perl на апач и напиши все, что нужно, на нем, там не надо быть виртуозом-программистом, чтобы такое написать. Пишешь модуль, в fixup-фазе проверяешь, что куки нету, если нет - берешь реферер и суешь его в куку.
Еще вариант - можешь писать access лог формата "unique ID (см. mod_unique_id) + referer" в трубу stdin какого-нибудь скрипта. Который работает так: "такого нет в базе - запоминаем реферер, такой есть - ничего не делаем". Потом, когда тебе нужен реферер в другом месте, просто берешь из базы. Периодически записи чистятся по их timestamp'у. В этом случае тебе даже куки не понадобится.
P.S. Вот тебе еще вариация на тему 2.
http://httpd.apache.org/docs/1.3/mod/mod_usertrack.html
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |